我创建了一个博客,您可以在其中博客文章和发表评论。一切都很好,运转良好。
我只想让Laravel在用户对文章发表评论时发挥作用,而不是硬编码article_id
和user_id
。
Comment::create([
'body' => request('body'),
'article_id' => $article->id,
'user_id' => Auth::User()->id]
);
是否可以使用Laravel的雄辩关系来链接某些函数/方法并对其进行一些简化?
答案 0 :(得分:0)
取决于。如果user_id
和article_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;
]);
用户也可以这样做。