使用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