Laravel не может создать пользовательский класс UserProvider не найден - PullRequest
1 голос
/ 28 января 2020

Я пытаюсь создать собственный поставщик аутентификации в laravel. Я уже добавил нового провайдера в config/auth.php, а также создал класс, который реализует Illuminate\Contracts\Auth\UserProvider.

Но когда я пытаюсь добавить класс в качестве провайдера в AuthServiceProvider, он говорит Class 'App\Extensions\CustomProvider' not found. Но когда я удаляю implements UserProvider в моем классе, он возвращает ...must be an instance of Illuminate\Contracts\Auth\UserProvider.

Мой код для создания провайдера:

Auth::provider('customProvider', function($app, array $config) {
  return new CustomProvider($app->make('request'));
});

Документация не отображается сам класс.

Редактировать: Вот мой пользовательский провайдер:

namespace App\Extensions;

use Illuminate\Contracts\Auth\UserProvider;

class CustomProvider implements UserProvider
{
    protected $request;

    public function __construct(Request $request) {
        $this->request = $request;
    }

    // Here the functions from the interface
    // ...
}

1 Ответ

0 голосов
/ 28 января 2020

Вы забыли оператор use, поэтому он считает, что интерфейс находится в вашем собственном пространстве имен.

Легко исправляется.

use Illuminate\Contracts\Auth\UserProvider;

Затем реализуйте его снова и это будет работать!

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