用户注册字段未保存在Laravel 5中

geo*_*310 1 php laravel laravel-5

我正在使用Laravel 5并将默认注册器稍微修改为使用first_name和last_name而不是名称.出于某种原因,但在创建用户时,first_name和last_name字段在数据库中为空.这是我正在使用的代码:

public function validator(array $data)
{
    return Validator::make($data, [
        'first_name' => 'required|max:255',
        'last_name' => 'required|max:255',
        'discount_code' => 'max:255',
        'register_email' => 'required|email|confirmed|max:255|unique:users,email',
        'register_password' => 'required|confirmed|min:6|max:60'
    ]);
}

public function create(array $data)
{
    return User::create([
        'first_name' => $data['first_name'],
        'last_name' => $data['last_name'],
        'email' => $data['register_email'],
        'password' => bcrypt($data['register_password'])
    ]);
}
Run Code Online (Sandbox Code Playgroud)

在create方法中,如果我在调用User :: create之前执行print_r($ data),那么first_name和last_name就在那里,但当条目存储到数据库中的users表时,只存储电子邮件和密码.这也是我的表定义:

CREATE TABLE IF NOT EXISTS `users` (
    `id` int(10) unsigned NOT NULL,
    `first_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    `last_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    `password` varchar(60) COLLATE utf8_unicode_ci NOT NULL,
    `discount_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    `remember_token` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
    `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Run Code Online (Sandbox Code Playgroud)

Joe*_*inz 6

first_namelast_name领域需要在通过模型质量分配$fillable/ $guarded阵列.