Laravel PasswordBroker::createToken() должен реализовать интерфейс

#php #laravel

#php #laravel

Вопрос:

Я пытаюсь использовать PasswordBroker класс Laravel createToken без отправки электронной почты. Но когда я вызываю createToken метод, он выдает мне эту ошибку.

 Argument 1 passed to IlluminateAuthPasswordsPasswordBroker::createToken() must implement interface IlluminateContractsAuthCanResetPassword, instance of stdClass given..
  

Как я могу вызвать createToken метод в моем контроллере? На данный момент я использую приведенный ниже код, но он выдает ошибку.

 app('auth.password.broker')->createToken($customer);
  

Ответ №1:

В этом случае ваш данный объект $customer должен иметь реализацию CanResetPassword , которая может быть реализована IlluminateFoundationAuthUser на вашем $customer объекте. Я настоятельно рекомендую присвоить ему псевдоним, если ваш $customer объект также называется User .

 use IlluminateFoundationAuthUser as Authenticatable;

class User extends Authenticatable {}
  

Надеюсь, это поможет и решит ваши проблемы.