卡在Laravel中,试图将数据保存在数据库中

时间:2018-09-20 20:52:11

标签: php laravel

我正在执行此函数以在以后调用它,但是保存在数据库中的只有first_namepasswordemailnulluser_create_iduser_update_id

protected function create(array $data)
{
    return User::create([
        'first_name' => $data['first_name'],
        'password' => Hash::make($data['password']),
        'email' => $data['email'],
        'user_create_id'=> '0',
        'user_update_id'=> '0',  ]);
}

是否可以保存user_create_iduser_update_id

4 个答案:

答案 0 :(得分:2)

可能没有看到用户模型,您可能需要更新fillable属性以包括这些属性,例如:

protected $fillable = [
    'firstname',
    'password',
    'email',
    'user_create_id',
    'user_update_id'
];

除非您设置了一个受保护的属性,否则在这种情况下,您只想确保这些属性都没有在受保护的属性中,因为它充当黑名单,而fillable充当mass属性的while列表分配。可行的受保护版本看起来像这样

protected $guarded = [];

答案 1 :(得分:0)

确保您拥有

protected $fillable = [
    ....
    'user_create_id'=> '0',
    'user_update_id',
];

User类内部

答案 2 :(得分:0)

https://laravel.com/docs/5.7/eloquent#mass-assignment

  

您还可以使用create方法将新模型保存在一行中。插入的模型实例将从该方法返回给您。但是,在执行此操作之前,您将需要在模型上指定可填充或受保护的属性,因为默认情况下,所有Eloquent模型都可以防止大规模分配。

确保user_create_id文件中的user_update_id定义中包含app/User.php$fillable

答案 3 :(得分:0)

确保这些属性是可填充的。另外,请确保列类型支持字符串,因为您正在使用'0',它是字符串,而不是整数:

可填写:

// User model

protected $fillable = [
    'first_name',
    'password',
    'email',
    'user_create_id',
    'user_update_id'
];