将字段添加到 Laravel 5 身份验证不会插入到数据库中

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