【发布时间】:2015-02-04 11:43:38
【问题描述】:
使用 Laravel,我有以下代码
$review = Review::find(1);
$review->delete();
Review 具有使用Product 实体定义的多对多关系。当我删除评论时,我希望它会从数据透视表中的相关产品中分离出来,但事实并非如此。当我运行上面的代码时,我仍然在数据透视表中看到链接行。
我是否遗漏了一些东西,或者这就是 Laravel 的工作方式?我知道detach() 方法,但我认为删除实体也会自动将其与任何相关实体分离。
Review 是这样定义的:
<?php
class Review extends Eloquent
{
public function products()
{
return $this->belongsToMany('Product');
}
}
Product 是这样定义的:
<?php
class Product extends Eloquent
{
public function reviews()
{
return $this->belongsToMany('Review');
}
}
提前致谢。
【问题讨论】:
-
这就是
Eloquent的工作原理。您可以将 DB 事件用于数据透视表 (@987654331@) 或使用 Eloquent 实现事件处理程序。类似stackoverflow.com/a/14174356/784588
标签: laravel orm many-to-many eloquent