Пытаюсь разобраться в Voters и сделать проверку ID пользователя, чтобы соответствовал $uid из запроса. Кажется логичным передать в сервис $request_stack Но возникает проблема
# app/config/security.yml
* Если я указываю атрибут вотера в access_control - то появляется ошибка "Trying to get property of non-object" когда я пытаюсь получить $uid параметр запроса
$request_stack->getCurrentRequest()->get('uid');access_control:
- { path: ^/secret, roles: [UID] }
Обнаружил, что конструктор вотера вызывается почему-то два раза, и в первом $request_stack->getCurrentRequest() === null пытаясь запросить ->get('uid') и вызывает ошибку
api.uid_voter:
class: SecretBundle\Security\UidVoter
arguments: ['@request_stack']
tags:
- { name: security.voter }
public: false
Сейчас завернул костылем
public function __construct(RequestStack $request_stack)
{
$request = $request_stack->getCurrentRequest();
if ($request) {
$this->uid = $request->get('uid');
}
}
Может кто знает в чём причина?