我试图删除模型关系的关系。如果这有意义吗?
$post->comments()->activities()->delete();
所以我的帖子模型有评论和评论有活动。每当我尝试执行此操作时,都会收到此错误:
Call to undefined method Illuminate\Database\Query\Builder::activities()
我知道这有效:
$post->load('comments.activities');
foreach ($post->comments as $comment) {
$comment->activities()->delete();
$comment->delete();
}
但我认为第一种解决方案看起来更清洁。有谁知道为什么这不起作用?感谢。
修改
Post模型中的关系方法(多态,因为帖子上有评论和评论评论)。
public function comments()
{
return $this->morphMany('App\Models\Comment', 'commentable');
}
评论模型中的关系方法(多态,因为我在多个模型上使用活动)。
public function activities()
{
return $this->morphMany('App\Models\Activity', 'subject');
}
答案 0 :(得分:1)
尝试
$post->comments->activities()->delete();
当然,只有在两个模型上都有一对多关系
时,这才有效答案 1 :(得分:0)
你在写作之前是否给过了表定义?
protected $table = 'posts';
你能详细说明一下你的问题吗?