我有两种类型的帖子:简单的帖子和博客文章 我希望通过多态关系将其与评论联系起来
这是我的模特:
// Comment Model
public function commentable()
{
return $this->morphTo();
}
public function user()
{
return $this->belongsTo('App\User', 'foreign_key');
}
//Article and Simple post Model
public function user()
{
return $this->belongsTo('App\User', 'foreign_key');
}
public function comments()
{
return $this->morphMany('App\Comment', 'commentable');
}
这是使用创建评论的最佳方式,并在commentable_type
中存储每种类型的类名称的正确值和id
$comment = Auth::User()->comment();
$comment->content = $request->input('content');
$comment->commentable_id = $request->input(?);
$comment->commentable_type = $request->input(?);
$comment->save();
答案 0 :(得分:1)
最好,你应该通过可以模仿的模型创建评论(即:Post,SimplePost)check the docs:
$comment = new App\Comment(['content' => $request->input('content')]);
$post = Post::find($request->input('post_id'));
$post->comments()->save($comment);