Laravel-如何从不同的字段中提取名字和姓氏,并将它们存储在数据库的名称列中


Laravel - How to take first name and last name from separate fields and store them in name column in db?

因此,我在项目中使用了php artisan make:auth,并在此基础上进行构建。问题是它只有"name"字段,而没有"firstName"answers"lastName"字段。我在哪里配置这些选项?我想从名字和姓氏中获取输入,并用它们之间的空格将它们连接起来,然后将它们作为名称存储在我的数据库中。在哪里可以这样做?我在哪里配置我的选项,比如是否要为我的用户添加地址或电话号码?我研究了很多,我真的对所有这些特征感到困惑,所以有人能给我一些关于如何进行用户身份验证的建议吗?

要使用name而不是first_name和last_name,请打开database/migration/create_user_table写入

$table->string('name');

而不是

$table->string('first_name');
$table->string('last_name');

之后打开app/Http/Controller/Auth/AuthController.php,然后像一样放入代码

protected function create(array $data)
    {
        return User::create([
            'name' => $data['first_name'].' '.$data['last_name'],
            'username' => $data['username'],
            'email' => $data['email'],
            'password' => bcrypt($data['password']),
        ]);
    }

如果您想使用更多的字段,请将这些字段写入数据库/迁移中的迁移文件中,然后在文件的html形式的resources/views/auth/register.blade.php中使用这些字段,然后更改AuthController.php文件

根据文档,您可以在create方法中修改AuthController类,以设置用于创建新用户的字段。

然而,我想请您重新考虑是否需要这两个字段。真的有必要吗?你的设计规范要求吗?W3C建议使用单个"名称"字段以获得更好的用户体验。我知道有些应用程序需要两者兼而有之,比如人力资源和会计,但这值得考虑。一般消费者类型的用户想要更简单的表单,所以尽可能少地询问用户。