Создайте логин в laravel, где учетные данные не находятся в одной базе данных - PullRequest
0 голосов
/ 04 мая 2019

Мне нужно создать логин для существующей базы данных в laravel.База данных довольно странно смоделирована, но я не могу ее изменить.Я довольно новичок в Laravel и не могу понять, как это делается.Вход в систему с обычным make :: auth кажется интуитивно понятным, но я не знаю, как изменить параметры, или, может быть, вы предлагаете мне совершенно другое решение.Как бы вы реализовали этот логин?

Учетные данные распределены по двум таблицам:

Table: Staff
-----
id
username


Table: Credential
-----
id
password (sha1)
id_staff

1 Ответ

0 голосов
/ 04 мая 2019

В вашей конфигурации / auth.php

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],

    // 'users' => [
    //     'driver' => 'database', // your database
    //     'table' => 'users', // your table
    // ],
 ],

Здесь вы можете вносить изменения и использовать другую базу данных и таблицу.

Если ваша таблица находится в той же базе данных, вам нужно только имя таблицы здесь

'providers' => [
        'credential' => [
            'driver' => 'eloquent',
            'model' => App\Credential::class,
        ],
     ],

В вашем LoginController

public function userid()
{
   $login = request()->input('login');
   $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'userid'; // you need to customize it to get email from the other table, if your email field is on other table
   request()->merge([$field => $login]);
   return $field;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...