SQLSTATE [HY000]:常规错误:1364字段“ role”没有默认值

时间:2018-10-26 07:35:23

标签: php laravel

我尝试添加 2列,即“ 角色”和“ 状态”。 在 User 模型中,“ 角色”是 varchar ,“ 状态”是布尔值

迁移成功后,数据库也同时显示了两列。

我已经添加了角色状态,还向我显示了SQLSTATE [HY000]:常规错误:1364字段“ role”没有默认值

User.php

protected $fillable = [
    'name', 'email', 'password', 'role', 'status',
];

}
protected $hidden = [
    'password', 'remember_token',
];

}

user table structure

5 个答案:

答案 0 :(得分:1)

在模型文件中添加可填充或受保护的

  

protected $guarded = [];

答案 1 :(得分:1)

您收到此错误,是因为您尝试为$user->role保存的值为null,并且数据库中的字段是必填字段(不能为空)没有默认值(提交null时使用默认值)。

可能的解决方案:

  • 使角色在数据库中可以为空
  • $user->role = 'somevalue'之前设置$user->save()(即使是空字符串''也可以)
  • 在数据库的列上设置默认值

答案 2 :(得分:0)

在$ fillable User.php数组中添加“角色”和“状态”。

答案 3 :(得分:0)

在创建操作中将这些可填充字段添加到模型中,即可填充这些字段

protected $fillable =[...,'role','status'];

您收到一个错误消息,因为您将其作为默认None,因此这些字段是必填字段

答案 4 :(得分:0)

在您的role模型中添加statusUser

User.php

protected $fillable = [
   'role','status'
];

这将使您能够在数据库的rolestatus列中添加数据。