Php SQLSTATE[HY000]:一般错误:1364字段';客户id';不';没有默认值
我试图通过请求post发送“client_id”来将post与客户机联系起来,然后当我创建它时,它会出现以下异常: SQLSTATE[HY000]:一般错误:1364字段“客户机id”没有默认值(SQL:insert intoPhp SQLSTATE[HY000]:一般错误:1364字段';客户id';不';没有默认值,php,laravel,migration,laravel-6,Php,Laravel,Migration,Laravel 6,我试图通过请求post发送“client_id”来将post与客户机联系起来,然后当我创建它时,它会出现以下异常: SQLSTATE[HY000]:一般错误:1364字段“客户机id”没有默认值(SQL:insert intoposts(内容,更新时间,创建时间)值(萨达德,2020-09-17 18:26:382020-09-17 18:26:38)) @csrf {{method_field('POST')} @include('includes.errors') 邮递 您需要在可填充的
posts
(内容
,更新时间
,创建时间
)值(萨达德,2020-09-17 18:26:382020-09-17 18:26:38))
@csrf
{{method_field('POST')}
@include('includes.errors')
邮递
您需要在可填充的数组中添加客户端id
,就像这样
protected $fillable = [
...
'client_id',
...
];
另一种解决方案
您可以添加您的Post
模型
protected $guarded = [];
这将使所有属性都可分配有一种可能性可以考虑,我已经经历过了
client\u id
字段不是可为空的列,因此它必须具有自动递增功能
由于client\u id
字段不是可为空的列,请在输入新行时指定其内容
根据官方的laravel文档,迁移中的->unsigned()
函数只是将unsigned属性添加到列中,而没有添加AUTO INCREMENT属性
如果是这种情况,您有两种选择
将->autoIncrement()
函数添加到客户机id
列以进行迁移
将列类型更改为->foreigned('user\u id')
(这意味着删除现有的->unsigned()
函数)
请尝试在DB内将此列的默认值设置为null,然后重试即可