小编Moh*_*bah的帖子

常规错误:1364字段'user_id'没有默认值

我试图为user_id分配当前用户,但它给了我这个错误

SQLSTATE[HY000]: General error: 1364 Field 'user_id' doesn't have a 
default value (SQL: insert into `posts` (`updated_at`, `created_at`) 
values (2017-04-27 10:29:59, 2017-04-27 10:29:59))
Run Code Online (Sandbox Code Playgroud)

这是我的方法

//PostController
Post::create(request([
        'body' => request('body'),
        'title' => request('title'),
        'user_id' => auth()->id()
    ]));
Run Code Online (Sandbox Code Playgroud)

与这些填料

//Post Model
protected $fillable = ['title', 'body', 'user_id']
Run Code Online (Sandbox Code Playgroud)

然而,这种方法可以胜任

//PostController
auth()->user()->publish(new Post(request(['title' ,'body']))); 

//Post Model
public function publish(Post $post)
{
    $this->posts()->save($post);
}
Run Code Online (Sandbox Code Playgroud)

知道为什么会失败吗? 在此输入图像描述

php laravel

16
推荐指数
4
解决办法
9万
查看次数

标签 统计

laravel ×1

php ×1