使用Laravel,我有以下的代碼Laravel雄辯ORM - 多對多刪除數據透視表值遺留
$review = Review::find(1);
$review->delete();
Review
有許多人與Product
實體定義了很多關係。當我刪除評論時,我希望它與數據透視表中的關聯產品分離,但事實並非如此。當我運行上面的代碼時,我仍然可以看到數據透視表中的鏈接行。
我錯過了這裏的東西嗎?或者Laravel的工作方式是這樣嗎?我知道detach()
方法,但我認爲刪除一個實體也會自動將它從任何相關實體中分離出來。預先
<?php
class Product extends Eloquent
{
public function reviews()
{
return $this->belongsToMany('Review');
}
}
感謝:
Review
的定義如下:
<?php
class Review extends Eloquent
{
public function products()
{
return $this->belongsToMany('Product');
}
}
Product
是這樣定義的。
這就是'Eloquent'的工作原理。您可以爲數據透視表使用數據庫事件('在刪除級聯上')或使用Eloquent實現您的事件處理程序。就像http://stackoverflow.com/a/14174356/784588 – 2014-12-06 10:44:12