Chcę zrobić formularz rejestru według numeru, nazwy, hasła z Lavel Auth.

Zmieniam więc metodę nazwy użytkownika w metodzie logincontroller.php i walidację, utwórz metodę w rejestracjiController.php jak następujący kod.

Ale zawsze pokazuj błąd

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

LoginController

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

RejestracjaController.

    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']),
        ]);
    }

Spędziłem 2 dni, aby znaleźć uwierzytelnianie rejestracji, ale widzę tylko logowanie Dostosuj.

Dostosowałem tylko o rejestracji. Ale ta strona nie pokazuje rozwiązania.

https://laracasts.com/discuss/channels/ Lavel / Rejestracja użytkownika - bez wiadomości e-mail? Strona = 1

proszę pomóż mi.

-1
happy Coyote 4 październik 2020, 12:45

1 odpowiedź

Najlepsza odpowiedź

Twój model użytkownika ma pole email, że to:

  1. wymaga
  2. Nie ma wartości domyślnej podczas próby utworzenia nowego użytkownika.

Idź do swoich migracji create_users_table i edytuj:

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

Do

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

Ale moim zdaniem jest zły pomysł, w jaki sposób zidentyfikujesz tych użytkowników? Jak pozwolisz im zresetować swoje hasła?

0
aurawindsurfing 4 październik 2020, 10:52