向Laravel 5身份验证添加字段don';t被插入数据库


Adding fields to Laravel 5 authentication don't get inserted into the database

我一直在玩Laravel 5的开箱即用身份验证。当我将字段添加到架构并迁移时,然后使它们可填充——那些添加的字段不会插入数据库,默认字段会被插入,但新字段是空的。表单已更新为包含这些新字段。

控制台还显示表单数据的发送是否正确。

我是不是错过了什么?

如果查看文件app/Services/Registrar.php,您会发现其中有一个create函数:

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

您需要修改此函数以包含表单字段。它们将在$data数组中传递。

该文件中还有一个validator函数,用于将验证规则应用于字段。

此外,在app/User.php模型文件中还有一个protected $fillable数组。您需要将自定义字段名添加到此数组中,以便它们可以批量分配。

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

2015年7月9日编辑

这适用于v5.0.1。文件夹结构已更改。app/Services/Registrar.php文件中的设置已移动到app/Http/Controllers/Auth/AuthController.php