Giriş yapmadınız.

Duyuru

TÜRKÇE KİTAP DUYURUSU:
Laravel 5 : Laravel 5.1 Güzelliği (Türkçe)
Vue.js 2 : Vue.js 2 Majesteleri (Türkçe)

#1 31.10.2017 15:55:41

dodiş
Üye
Yer: Mersin
Kayıtlı: 30.10.2017
Mesajlar: 4

Laravel attach özelliği ?

Herkese iyi forumlar,
Laravel 5.4 'de "attach" özelliği örneğin;

$note->tags()->attach($array);

Ne anlama geliyor ? Polimorfik tablolar için mi kullanılıyor ?

Çevrimdışı

#2 31.10.2017 17:36:42

ozgur
Üye
Kayıtlı: 31.10.2017
Mesajlar: 1

Yanıt: Laravel attach özelliği ?

İki tablo arasında Many to Many ilişki varsa kullanılıyor.

Örneğin bir kullanıcının birden fazla rolü, bir rol de birden fazla kullanıcıya ait olabiliyorsa;
user'a role eklerken

 $user->roles()->attach($roleId); 

user'dan role çıkartırken

 $user->roles()->detach($roleId); 

kullanabiliriz.

Bunların içerisine istersek array de gönderebiliriz.

 $user->roles()->detach([1, 2, 3]); 

Hatta useriın rollerini gönderdiğim array'e göre senkronize et de diyebiliriz:

 $user->roles()->sync([1, 2, 6]); 

(Bu kullanımın en sevdiğim yanı select2 plugin'i ile birlikte işleri çok kolaylaştırması)

Son düzenleyen ozgur (31.10.2017 17:37:23)

Çevrimdışı

#3 31.10.2017 18:45:01

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 838
Website

Yanıt: Laravel attach özelliği ?

many-to-many ilişkilerde ortanca tablo olur, ilişki bu tabloda tutulur. Örneğin kullanıcı-rol ilişkisinde ortanca tabloda user_id, role_id olur. Bu durumda bir kullanıcının birden fazla rolü olabiliyor, bir rol de birden fazla kullanıcıya atanabiliyor. attach, detach, sync yöntemleri bu tabloya ekleme yapma, çıkarma ya da baştan senkronize yapılmasını sağlıyor. Örneğin id'si 1 olan kullanıcya id'si 3 ve 4 olan rolü eklemek isterseniz $user->roles()->attach([3,4]) yaparsınız. Bu ortanca tabloya user_id 1, role_id 3 ve user_id 1, role_id 4 olacak şekilde iki satır ekler.

Çevrimdışı

#4 01.11.2017 08:27:51

dodiş
Üye
Yer: Mersin
Kayıtlı: 30.10.2017
Mesajlar: 4

Yanıt: Laravel attach özelliği ?

Herkese teşekkürler! Bu tarz konularda lazım diye düşünüyorum araştırdım türkçe kaynak bulamadım.

Çevrimdışı

#5 01.11.2017 09:29:49

sineld
Yönetici
Yer: Bursa
Kayıtlı: 26.12.2012
Mesajlar: 1,145
Website

Çevrimdışı

Forum alt kısmı