Merhabalar,
3 adet tablom var
1. kategori
2 ozellik_grup
3. kategori-ozellik_grup
kategoriye ait birden fazla özellik grubu olabilir. ve bir özellik grubu birden çok kategoriye de eklenebilir.
Şimdi soruya geçelim yavaştan
Düzenleme yaparken gelen post değerlerini alarak şöyle bir kontrol yapıyorum
foreach($input['og_kategori'] as $val) {
$category = Kategori::find($val);
if ( ! $category->optionGroup()->where('og_id', $input['og_id'])->get()) {
$category->optionGroup()->save($optionGroup);
}
}
Yani bu özellik grubu seçilen kategorilerle ilişkilendirilmediyse ilişkilendiriliyor. Burda sıkıntı yok lakin;
Eğer daha önce seçilmiş olan kategori düzenlenirken seçilmediyse bunu Laravelin sunduğu yöntemleriyle yakalama şansım var mı ?
Şimdiden teşekkürler.
ÇÖZÜM:
Arda wrote:Olmayan değil de olanın sorgusu var has() diye, kullanımı with() gibi.
Pivota içerik girmek için save değil attach() ve silmek için detach() kullanın.
Ama ben pivotlarda ilişkilendirmelerde güncelleme yaparken önce her şeyi detach() ediyorum, daha sonra gelen posta göre yeniden birer birer attach() ediyorum. Öyle kullanmak bence daha basit. Hatta sync() ile daha da basit :)
@Arda 'nın dediği gibi sync ile çok daha kolay. Örn:
$product->category()->sync(array(idler ya da id));
Böyle yapıldığı zaman otomatik olarak eğer daha önce ekliyse bu id'yi tekrardan eklemiyor. Ekli değilse ekliyor ya da önceden ekliyse şimdi yoksa siliyor vs.