TokenStorageInterface всегда возвращает значение null

#symfony

#symfony

Вопрос:

Я вводлю класс «TokenStorageInterface» в службу.Услуга также вводится от подписчика.»TokenStorageInterface» всегда возвращает false.Я попытался ввести безопасность, но все равно вернул значение null.

 class RestaurantService {   private TokenStorageInterface $tokenStorage;  public function __construct(TokenStorageInterface $tokenStorage) {   $this-gt;tokenStorage = $tokenStorage;  }  public function getRestaurantId():int{   if($this-gt;tokenStorage-gt;getToken() instanceof User){ // always false ....  

Использование ресторанного сервиса

 class OverridesSubscriber implements EventSubscriberInterface {  private $restaurantId;  public function __construct(RestaurantService $restaurantService)  {  $this-gt;restaurantId = $restaurantService-gt;getRestaurantId();    

Комментарии:

1. Токены не являются пользователями. Обычно вы делаете что-то вроде $TokenStorage — gt;getToken()-gt;gt;getUser()

2. @Cerad Вы правы, но $TokenStorage-gt;getToken() всегда равен нулю. Тот же код работает с контроллером.

3. Вы используете свой сервис в конструкторе подписчика. Это подписчик запроса ядра? Если это так, то подписчик создается как часть процесса начальной загрузки. Информация о пользователе безопасности также находится в подписчике, который еще не был вызван. Поэтому переместите getRestaurantId из конструктора в любой метод, который действительно нуждается в идентификаторе. Просто вопрос времени.

4. @Cerad, это сработало. Большое вам спасибо 🙂