将字段添加到 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
我一直在研究 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