Как использовать имя пользователя для входа вместо электронной почты в laravel 5.3?

Пользователь

от elian.swift , в категории: PHP , 2 года назад

Как использовать имя пользователя для входа вместо электронной почты в laravel 5.3?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от rudolph_senger , 2 года назад

@elian.swift 

Чтобы использовать имя пользователя вместо электронной почты в Laravel 5.3, вам нужно внести несколько изменений в код. Вы можете это сделать следующим образом:

  1. Измените валидацию:


Валидация электронной почты должна быть изменена на валидацию имени пользователя. Это можно сделать в файле app/Http/Controllers/Auth/LoginController.php в методе validateLogin:

1
2
3
4
5
6
7
protected function validateLogin(Request $request)
{
    $request->validate([
        $this->username() => 'required|string',
        'password' => 'required|string',
    ]);
}


  1. Измените метод username:


Вы должны указать Laravel, что вы хотите использовать имя пользователя вместо электронной почты. Это можно сделать в файле app/Http/Controllers/Auth/LoginController.php в методе username:

1
2
3
4
public function username()
{
    return 'username';
}


  1. Измените модель пользователя:


Вы должны указать Laravel, что вы хотите использовать имя пользователя в качестве идентификатора пользователя. Это можн

Пользователь

от ciara , год назад

@elian.swift 

а сделать в вашей модели пользователя (например, app/User.php):


1 2 3 4


public function findForPassport($username) { return $this->where('username', $username)->first(); }