Laravel - Аргумент 1 передан в Illuminate \ Auth \ EloquentUserProvider :: validateCredentials () - PullRequest
0 голосов
/ 15 мая 2018

Я использую мульти аутентификацию в laravel 5.6.

Я использую Linux 16.4. и PHP 7,2

После запуска http://localhost:8000/manage/login и нажмите кнопку входа в систему, покажите эту ошибку:

"Type error: Argument 1 passed to Illuminate\Auth\EloquentUserProvider::validateCredentials() must be an instance of Illuminate\Contracts\Auth\Authenticatable, instance of App\Admin given, called in /media/project/vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php on line 380"

Как решить эту проблему?

1 Ответ

0 голосов
/ 16 мая 2018

Это просто означает, что ваша модель Admin не имеет интерфейса Authenticatable.

Включите следующий оператор use в свой класс, а затем implement это, например,

use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;

class Admin extends Model implements AuthenticatableContract {
    ...
}

Затем вам необходимо убедиться, что все необходимые методы включены в вашу модель. Самый простой способ сделать это - включить черту Authenticatable, например

use Illuminate\Auth\Authenticatable;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;

class Admin extends Model implements AuthenticatableContract {

    use Authenticatable;
}

Наконец, вам может потребоваться переопределить некоторые из методов, в зависимости от того, отличается ли ваша таблица БД от стандартного User.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...