2016-04-11 45 views
2

Laravel 5.2 kullanıyorum.Laravel Soft Sil Pivot tabloda çalışmıyor

3 tablom var: book, user ve book_user (pivot tablo).

Pivot tablomda yumuşak silme kullanmak istiyorum. Bir kullanıcı için attach bir kitap olduğunda, ilişki book_user tablosuna eklenir. Ancak bu ilişkiyi detach yaptığımda, pivot tablo modeline use SoftDeletes eklediğim halde pivot tablodaki kayıt silinir.

I attach veya detach ne zaman pivot tablodaki kayıtlar için yumuşak silme uygularım?

cevap

3

Pivot tablo ile yumuşak silme kullanarak denemedim, ancak bunun çalışmadığını söylüyorsunuz.

Sadece bir fikir, detach yerine sync kullanabilirsiniz;

Bundan önce TIMESTAMP yerinesütununu book_user tablosuna DATETIME olarak eklemeniz gerekir. Çünkü MYSQL'in yeni sürümü TIMESTAMP türü için NULL'u desteklemiyor.

Yumuşak Silme

Ayrıca hevesli Yük uzerinde kısıtlama koyabilirsiniz alma

$user->books()->sync(array(1 => array('deleted_at' => DB::raw('NOW()')))); 

:

public function books() 
{ 
    return $this 
    ->hasMany('Book') 
    ->whereNull('book_user.deleted_at'); 
}