Я не могу получить аутентифицированного веб-мастера в контроллере. Как вы можете видеть ниже, я аутентифицирую пользователя в конструкторе через $this->middleware
:
class DomainController
.....
public function __construct()
{
$this->middleware('auth:webmasters');
}
public function requestNewName(Request $request, Webmaster $webmaster, DomainRepositoryInterface $domainRepository): array
{
// $webmaster->id === null here
/** @var Webmaster $webmaster */
$webmaster = Auth::user(); // $webmaster->id === 1, all OK
$domainRepository->requestChangeName($webmaster, $request->input('newName', ''));
return ['result' => true];
}
....
Я думаю, мне нужно где-то связать, но я не понимаю, где и как?
P. S.
Теперь у меня есть в AuthServiceProvider:
foreach ([Webmaster::class, Admin::class] as $class) {
$this->app->bind($class, static function($app) use ($class) {
$authenticated = Auth::user();
/** @noinspection GetClassUsageInspection */
return $authenticated && get_class($authenticated) === $class ? $authenticated : null;
});
}
}
И вызвать эту функцию в методе загрузки. Могу поспорить, что в Laravel есть что-то для этого.