php - 一般错误 : 1364 Field 'user_id' doesn't have a default value

标签 php laravel

我正在尝试将 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))

这是我的方法

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

用这些填充物

//Post Model
protected $fillable = ['title', 'body', 'user_id']

但是这种方法可以完成工作

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

//Post Model
public function publish(Post $post)
{
    $this->posts()->save($post);
}

知道为什么会失败吗? enter image description here

最佳答案

你需要改变数据库严格模式。禁用按照下面的步骤

  1. 打开config/database.php

  2. 找到'strict'将值true改成false再试

关于php - 一般错误 : 1364 Field 'user_id' doesn't have a default value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43651446/

相关文章:

php - 为什么 Laravel 5 移除了 Cascading Configs

php - 安装 Herd 并返回 Valet 后为 502

php - 照亮\Http\Exceptions\PostTooLargeException - Laravel 5

php - div 中的 css 菜单代码内容

Laravel:PHPUnit 和与 JavaScript 交互

php - 我正在尝试在 Laravel 数据库上使用多个过滤器

php - 更新到 Laravel 7 php artisan 后无法正常工作

php - Laravel token 签名无法验证

php - if else 运算符短方式

laravel - Laravel 应用程序关闭时会触发什么事件?