这是错误
SQLSTATE [HY000]:常规错误:1364字段'department_id'没有 具有默认值(SQL:插入
ms_user
(name
,username
,role
,password
,updated_at
,created_at
)
ms_user模型
protected $fillable = [
'department_id','name', 'email', 'password','username','role',
];
创建功能:
{
return ms_user::create([
'name' => $data['name'],
'username' => $data['username'],
'role' => $data['role'],
'email' => $data['email'],
'department_id' => $data['department_id'],
'password' => bcrypt($data['password'])
]);
}
验证器功能:
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|string|max:255',
'username' => 'required|string|max:255',
'role' => 'required|in:user,admin',
'department_id' => 'required|string',
'email' => 'required|string|email|max:255|unique:ms_user',
'password' => 'required|string|min:6|confirmed',
]);
}
department_id
是一个下拉菜单,其中包含ms_department
表中的数据,
department_id
成为ms_user
表中的外键,并成为ms_department
答案 0 :(得分:0)
您似乎试图创建一个将字段department_id
设置为null的用户。在您的控制器中,它表明您正在传递$data['department_id']
,我认为该值来自Request
对象。但是由于该字段没有任何值,因此当您执行创建user
的代码时,它将向该数据库发送空值。包含用户数据的表不允许该字段为空。
您可以通过更新迁移来解决此问题,从而在departement_field
上允许null
$table->integer('department_id')->nullable();
或者您可以检查$data['department_id']
是否不为空,但在控制器中使用debug($data)
。
答案 1 :(得分:0)
如果引用department_id
的输入的name属性为空或拼写错误,似乎您正在尝试进行批量上传
我遇到了同样的问题,但是在我的情况下,该错误源自我的控制器,我在其中交换了居住在exp_date
上的字段名