You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中如何保存带有两个关联关系的模型?

如何给评论关联用户?

首先要确保你的模型关联已经正确定义:

  • 在User模型中添加评论关联:
public function comments()
{
    return $this->hasMany(Comment::class);
}
  • 在Comment模型中添加用户关联:
public function user()
{
    return $this->belongsTo(User::class);
}

接下来有几种简洁的实现方式:

方式一:创建评论时直接传入user_id

利用当前登录用户的ID,把它加入到验证通过的数组中,create方法会自动处理关联:

$post = Post::find(1);
// 把当前用户ID加入验证数据
$validated['user_id'] = auth()->id();
$comment = $post->comments()->create($validated);

方式二:通过用户实例创建评论

如果已经持有用户实例(比如登录用户),可以直接通过用户的关联方法创建评论,同时指定post_id:

$post = Post::find(1);
$user = auth()->user();
$comment = $user->comments()->create([
    ...$validated,
    'post_id' => $post->id
]);

方式三:先创建评论再关联用户(不推荐)

这种方式会多一次数据库操作,仅在特殊场景下使用:

$post = Post::find(1);
$comment = $post->comments()->create($validated);
// 关联用户并保存
$comment->user()->associate(auth()->user());
$comment->save();

内容的提问来源于stack exchange,提问作者Mike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 00:03:16