这是我的情况:用户可以评论视频。评论属于视频和用户。我的模型看起来像这样:
class Comment extends Eloquent {
public function video()
{
return $this->belongsTo('Video');
}
public function user()
{
return $this->belongsTo('User');
}
}
class User extends Eloquent {
public function comments()
{
return $this->hasMany('Comment');
}
}
class Video extends Eloquent {
public function comments()
{
return $this->hasMany('Comment');
}
}
我试图插入评论:
$comment = new Comment;
$comment->content = 'content';
Auth::user()->comments()->save($comment);
这会从SQL引发Integrity constraint violation
错误,因为它只更新一个外键。以相反的方式(保存到视频)产生相同的结果。如何一次将它添加到两个模型中,更新两个外键?
答案 0 :(得分:22)
您现在遇到的问题是您懒得加载comments
的{{1}}。
我相信,您可以做的一件事就是在Eloquent模型中使用Auth::user
方法,请尝试一下,看看它是否适合您的特定需求。
associate