如何在Laravel 5.2中注册期间为每个新用户将文本写入一个数据库列?

时间:2016-08-25 13:33:48

标签: php mysql laravel laravel-5.2

我使用Laravel 5.2 Auth功能并且注册工作正常。

现在我需要在注册期间在users表的特殊列中写一个字符串。它不是HTML表单输入的值。它是描述用户角色(贡献者)的静态文本。注册的所有用户都应该收到"贡献者" user_role列中的值。 我尝试通过将此行添加到AuthController.php来实现此目的:

'user_role' => 'contributor',

向数据库添加值的整个函数如下所示:

/**
     * Create a new user instance after a valid registration.
     *
     * @param  array  $data
     * @return User
     */
    protected function create(array $data)
    {
        return User::create([
            'first_name' => $data['first_name'],
            'last_name' => $data['last_name'],
            'email' => $data['email'],
            'password' => bcrypt($data['password']),
            'user_role' => 'contributor',
        ]);
    }

当我尝试注册新帐户时,除了'user_role' => 'contributor',之外的所有内容都会被添加。
什么是正确的写作方式"贡献者" user_role列中每个新用户的值是什么? 它是否工作,因为该函数只设置了$ data数组?

1 个答案:

答案 0 :(得分:4)

您是否在用户模型上向user_role数组添加了$fillable

如果不是,则需要添加

示例

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