Как проверить дополнительное поле при входе в Laravel? - PullRequest
0 голосов
/ 08 ноября 2018

Как проверить дополнительное поле при входе в Laravel?

Теперь он работает из коробки и принимает электронную почту и пароль. Как дополнительно проверить параметр статуса при входе пользователя в систему?

Я использую это LoginController:

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;

class LoginController extends Controller
{
   use AuthenticatesUsers;
}

Я пробовал это в LoginController:

public function authenticate(Request $request)
    {
        $credentials = $request->only('email', 'password');
        $credentials['status'] = 1;

        if (Auth::attempt($credentials)) {
            return redirect()->intended('home');
        }
    }

Но Ларавел игнорирует этот метод authenticate().

если удалить use AuthenticatesUsers; он становится живым, но тогда не работает выход из системы, страница входа.

Ответы [ 4 ]

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

В вашем LoginController добавьте дополнительное поле в следующую функцию

protected function credentials(Request $request)
{
 return array_merge($request->only($this->username(), 'password'), ['column-name' => 'value']);
}
0 голосов
/ 08 ноября 2018

Ваш тег вопроса: laravel 5.2 , тогда для 5.2 вы должны переопределить getCredentials функция:

protected function getCredentials(Request $request)
{
    $credentials = $request->only($this->loginUsername(), 'password');

    $credentials['status'] = 1;

    return $credentials;
}

если вы используете laravel 5.3 + , ответ Эмтиаза Захида правильный (переопределить учетные данные функция)

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

В вашем LoginController.php

 Illuminate\Http\Request;

 protected function credentials(Request $request)
 {
 return array_merge($request->only($this->username(), 'password'), ['verified' => 1]);
 }
0 голосов
/ 08 ноября 2018

Вы можете добавить другое поле для проверки входа в систему с помощью функции credentials

внутри вас LoginController добавить credentials функцию и добавить дополнительное поле с электронной почтой, паролем

Пример:

public function credentials(Request $request)
    {
        $credentials = $request->only($this->email(), 'password');
        $credentials = array_add($credentials, 'status', '1');
        return $credentials;
    } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...