Laravel

Laravel’de Sorgu Oluşturma ve Eloquent İlişkileri

Laravel, PHP’nin popüler bir framework’üdür ve Eloquent ORM sayesinde veritabanı işlemlerini kolayca gerçekleştirebilirsiniz. Bu yazıda, Laravel’de sorgu oluşturma ve Eloquent ilişkilerini nasıl kullanacağımızı ele alacağız. 💡

Sorgu Oluşturma

Laravel, veritabanı işlemlerini kolaylaştırmak için Query Builder ve Eloquent ORM’i içerir. Bunlardan ilki olan Query Builder, SQL sorgularını PHP dilinde oluşturmayı sağlar. Bunun için öncelikle DB façade’sini kullanarak bir sorgu örneği oluşturmanız gerekmektedir.

$users = DB::table('users')->get();

Bu örnekte, users tablosundaki tüm kullanıcıları çektik. get() metodu ile tüm verileri çekebiliriz.

Belirli bir sütundaki değere göre sorgulama yapmak için where() metodu kullanılır.

$user = DB::table('users')->where('name', 'John')->first();

Bu örnekte, ismi ‘John’ olan ilk kullanıcıyı çektik. Birden fazla koşul eklemek isterseniz, where() metodunu zincirleme yaparak kullanabilirsiniz.

$user = DB::table('users')
           ->where('name', 'John')
           ->where('votes', '>', 100)
           ->first();

orWhere() metodunu kullanarak ‘veya’ koşullu sorgular da yapabiliriz.

$user = DB::table('users')
           ->where('votes', '>', 100)
           ->orWhere('name', 'John')
           ->get();

Eloquent ORM ve İlişkiler

Eloquent ORM, Laravel’deki en güçlü özelliklerden biridir. Aktif bir kayıt (Active Record) tasarım desenine sahip olan Eloquent, veritabanı tablolarınızı PHP nesneleri olarak temsil eder.

Her bir veritabanı tablosuna karşılık gelen bir Eloquent modeli oluşturmanız gerekir. Bu model üzerinden ilgili tablo ile işlemler yapılır.

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    //
}

Bu örnekte, ‘users’ tablosunu temsil eden bir User modeli oluşturduk.

Eloquent, bir modelin diğer model ile ilişkisini belirtmek için çeşitli yöntemler sunar: hasOne(), hasMany(), belongsTo(), belongsToMany() ve diğerleri.

Örneğin, bir kullanıcının birçok siparişi olabilir ve bir siparişin bir kullanıcıya ait olması gerekebilir. Bu ilişkiyi aşağıdaki gibi belirtiriz.

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    public function orders()
    {


        return $this->hasMany('App\Models\Order');
    }
}
namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Order extends Model
{
    public function user()
    {
        return $this->belongsTo('App\Models\User');
    }
}

Bu şekilde, ilişkili verilere ulaşabilmek için metotları kullanabiliriz.

$user = App\Models\User::find(1);

foreach ($user->orders as $order) {
    echo $order->amount;
}

Yukarıdaki örnekte, belirli bir kullanıcının siparişlerine ulaştık.

Sonuç olarak, Laravel ve Eloquent ORM’nin gücüyle karmaşık SQL sorgularını bile kolayca oluşturabilir ve yönetebilirsiniz. Bu özellikler, web uygulamanızın veritabanı işlemlerini hızlandıracak ve kodunuzun okunabilirliğini artıracaktır. 🚀

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu
Bu internet sitesinde size en iyi deneyimi sunmak için çerezleri kullanıyoruz. Bu siteyi kullanmaya devam ederek çerez kullanımımızı kabul etmiş olursunuz.
Kabul Et
Reddet
Privacy Policy