【发布时间】:2021-12-13 11:12:20
【问题描述】:
我有 3 张桌子。用户、帖子和评论。
一个用户和帖子链接在一起,因为一个用户可以有很多帖子,并且每次用户发帖时都会获取用户 ID。
评论表有用户ID和帖子ID。
用户可以有多个 cmets,一个帖子可以有多个 cmets。我试过用这个,但它说
Call to undefined method Illuminate\Database\Eloquent\Relations\BelongsToMany::associate()
这是我的链接代码。
CommentController 的存储方法:
public function store(Request $request)
{
$request->validate([
'text'=>'required'
]);
$comment = new Comment;
$comment->text = $request->get('text');
$comment->user()->associate($request->user());
$comment->save();
return redirect('/home');
}
这是我的关系查询。在我的帖子模型中,我有这个:
public function comment()
{
return $this->hasMany(Comment::class);
}
在我的用户模型中,我有这个:
public function comment()
{
return $this->hasMany(Comment::class);
}
在我的评论模型中,我有这个:
public function user()
{
return $this->belongsToMany(User::class,Post::class);
}
关于如何解决这个问题的任何想法?
【问题讨论】:
-
一条评论可能只与一个帖子和一个用户相关联,所以我认为没有必要同时链接它们。