我正在尝试自定义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
。