Laravel 5.1中的文章,评论和用户关系

时间:2018-10-06 15:30:34

标签: php laravel eloquent laravel-5.1

我创建了一个博客,您可以在其中博客文章和发表评论。一切都很好,运转良好。

我只想让Laravel在用户对文章发表评论时发挥作用,而不是硬编码article_iduser_id

Comment::create([
    'body' => request('body'),
    'article_id' => $article->id,
    'user_id' => Auth::User()->id]
);

是否可以使用Laravel的雄辩关系来链接某些函数/方法并对其进行一些简化?

1 个答案:

答案 0 :(得分:0)

取决于。如果user_idarticle_id都是nullable(我怀疑,但让我们假设它们都是),则可以这样使用Eloquent:

$user = Auth::User()->id;
$article = Article::find($request('article_id'));
$comment = Comment::create(['body' => $request('body')]);
$comment->article()->associate($article);
$comment->user()->associate($user);

否则,另一种可以改善它的方法是这样的:

$article = Article::find('article_id');
$article->comments()->save(new Comment([
    'body' => request('body');
    'user_id' => Auth::User()->id;
]);

用户也可以这样做。

相关问题