如何在laravel默认身份验证注册表中保存额外的非必需字段



我正在尝试自定义laravel-auth注册。我在表格和表单中添加了父亲姓名字段。但父亲姓名字段不是必需的。我在registercontroller.php和用户模型中添加了这个字段。然后,如果提交带有所有字段的表单,则数据插入成功,但如果我提交的表单没有父名称字段(这不是必需的(,则错误出现:f_name字段不能为空

如果我从可填充文件中删除f_name,则f_name不会保存。

RegisterController.php中的方法是:

protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'f_name' => $data['f_name'],
'password' => bcrypt($data['password']),
]);
}

User.php是:

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

这是因为您没有在数据库中使其为null。

另一件事是,你不应该这样编码。您应该为命令行或终端中具有php artisan make:request UserRequest的用户创建一个Request类(用于验证请求(。请参见以下内容。

protected function create(UserRequest $userRequest)
{
$user = new User($userRequest->all());
$user->password => bcrypt($userRequest['password']);
$user->save();
// your rest of the code.
}

案例1:您可能已经在DB中将字段默认值设置为非NULL。检查您的迁移,它将类似于$table->string('f_name')->nullable();或Check in DB/phpmuadmin,并默认设置为NULL。

案例2:检查您的验证器功能,可以将其设置为sometimes

相关内容

最新更新