如何将评论与Laravel上的用户相关联?

时间:2018-02-15 15:50:23

标签: laravel post comments

public function store(Post $post)
{
    $this->validate(request(), ['body' => 'required|min:2']);

    $post->addComment(request('body'));

    return back();
}

这是我的代码

我有这个错误 SQLSTATE [HY000]:常规错误:1364字段' user_id'没有默认值(SQL:插入commentsbodypost_idupdated_atcreated_at)值(ewrtyuttrew,1, 2018-02-15 15:44:17,2018-02-15 15:44:17))

3 个答案:

答案 0 :(得分:2)

您需要添加手动创建评论的用户。例如:

public function addComment(string $body)
{
    $this->comments()->create(['body' => $body, 'user_id' => auth()->id()]);
}

答案 1 :(得分:1)

用户模型中,您可以将关系定义为:

public function comments() { 
    return $this->hasMany(Comment::class);
}

因此,如果用户是已登录用户,则可以使用验证外观检索它:

$user = Auth::user();

然后你就可以做到:

$user->comments()->save(new Comment(request('body'));

请注意,您必须设置" fillable" 评论模型上的字段,以便允许动态创建。

答案 2 :(得分:0)

字段' user_id'

打开phpmyadmin然后打开评论表

字段' user_id' =>自动增量和主键添加

试试这个我解决这个类型的问题,谢谢