如何使用laravel auth在没有电子邮件的情况下注册

时间:2020-10-04 09:45:16

标签: laravel laravel-authentication

我想用Laravel认证按号码,名称,密码制作注册表。

所以我更改了LoginController.php中的用户名方法,并验证了方法,在RegisterController.php中创建了方法,就像下面的代码一样。

但总是显示错误

SQLSTATE[HY000]: General error: 1364 Field 'email' doesn't have a default value

LoginController

    public function username()
    {
        return 'number';
    }

RegisterController

    protected function validator(array $data)
    {
        return Validator::make($data, [
            'name' => ['required', 'string', 'max:255'],
            'number' => ['required'],
            'password' => ['required', 'string', 'min:8', 'confirmed'],
            'password_confirmation' => ['required'],
        ]);
    }

    protected function create(array $data)
    {
        return User::create([
            'name' => $data['name'],
            'number' => $data['number'],
            'password' => Hash::make($data['password']),
        ]);
    }

我花了2天的时间来查找注册自定义身份验证,但我只看到登录自定义。

我只找到一个有关注册自定义的内容。 但是此页面没有显示解决方案。

https://laracasts.com/discuss/channels/laravel/user-registration-without-email?page=1

请帮助我。

1 个答案:

答案 0 :(得分:0)

您的用户模型具有main() was called. source_2() was called. func() will be called. func(), inside source_1, was called. 102*102 will be returned. 字段:

  1. 需要
  2. 尝试创建新用户时没有默认值。

转到您的迁移email,然后编辑:

create_users_table

$table->string('email')->unique();

但是我认为这不是一个好主意,您以后如何识别这些用户?您将如何让他们重设密码?