一般错误:1364字段'department_id'没有默认值

问题描述 投票:0回答:1

这是错误

SQLSTATE [HY000]:常规错误:1364字段'department_id'没有具有默认值(SQL:插入ms_usernameusernameroleemailpasswordupdated_atcreated_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中的主键。

这里是错误SQLSTATE [HY000]:一般错误:1364字段'department_id'没有默认值(SQL:插入ms_user(名称,用户名,角色,电子邮件,密码,updated_at,created_at)...] >

php mysql laravel-5 eloquent
1个回答
0
投票

似乎您试图创建一个将字段department_id设置为null的用户。在您的控制器中,它表明您正在传递$data['department_id'],我认为该值来自Request对象。但是由于该字段没有任何值,因此当您执行创建user的代码时,它将向该数据库发送empty

值。包含用户数据的表不允许该字段为空。
© www.soinside.com 2019 - 2024. All rights reserved.