Laravel hasOne Ve hasMany Arasındaki Farklar
Laravel hasOne ile hasMany arasındaki farklar ve kullanımı...
hasOne
(Birebir İlişki):
- Anlamı: Bir modelin, başka bir modelle sadece bir tane ilişkisi vardır.
- Örnek:
- Bir kullanıcının tek bir profil kaydı olabilir.
- Kullanıcı (User) → Profil (Profile)
Nasıl çalışır?
class User extends Model
{
public function profile()
{
return $this->hasOne(Profile::class);
}
}
- Sonuç:
hasOne
, tek bir kayıt döner.$user = User::find(1); $profile = $user->profile; // Kullanıcının profili
hasMany
(Bireçok İlişki):
- Anlamı: Bir modelin, başka bir modelle birden fazla ilişkisi olabilir.
- Örnek:
- Bir kullanıcının birden çok gönderisi olabilir.
- Kullanıcı (User) → Gönderiler (Posts)
Nasıl çalışır?
class User extends Model
{
public function posts()
{
return $this->hasMany(Post::class);
}
}
- Sonuç:
hasMany
, birden fazla kayıt döner.$user = User::find(1); $posts = $user->posts; // Kullanıcının gönderileri
Nasıl Çağırırım Mantığı
$user = User::find(1);
$galeri = $user->userGaleri;
foreach ($galeri as $item) {
echo $item->id;
}
Farkı şöyle düşün:
hasOne
: 1 kişi = 1 telefon numarasıhasMany
: 1 kişi = Birden fazla telefon numarası
Hangisini kullanacağın, modeller arasındaki ilişkiye bağlıdır. Eğer bir model sadece bir başka modele bağlıysa hasOne
, birden fazla modele bağlıysa hasMany
kullanılır.
E-Bültenime Abone Ol
Anahtar Kelimeler: laravel,hasMany,hasOne
Yazan: Emre TENİK
Bu yazı: 40 kez okundu