如何在laravel默认auth注册表单中保存额外的不需要字段

时间:2018-11-25 12:32:37

标签: php laravel laravel-5

我正在尝试自定义laravel身份验证注册。而且我在表格和表单中添加了父亲姓名字段。但是不需要父亲姓名字段。 我在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',
];

2 个答案:

答案 0 :(得分:1)

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

情况2:检查验证器功能,可以将其设置为sometimes

答案 1 :(得分:1)

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

另一件事是,您不应该这样编写代码。您应该在命令行或终端中为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.

}
相关问题