Я использую аннотацию @Security
, чтобы контролировать, какие роли имеют доступ к определенным маршрутам в моем приложении Symfony 3.4, оно работает, когда я вошел в систему, однако, когда объект user
не существует, например, когда время сеансая получаю следующее исключение:
Unable to get a property on a non-object.
vendor / symfony / symfony / src / Symfony / Component / ExpressionLanguage / ExpressionLanguage.php: 78 в Symfony \ Component \ExpressionLanguage \ ExpressionLanguage- >valu ('\' ROLE_MANAGER \ 'в user.getRoles ()',
Определение моего метода выглядит следующим образом:
/**
* @Route("/club/{id}/trophies", name="club_trophies", methods={"GET","POST"})
* @IsGranted("IS_AUTHENTICATED_FULLY")
* @Security("'ROLE_MANAGER' in user.getRoles()")
* @param Club $club
* @return Response
*/
public function trophies(Club $club): Response
{
Есть ли способиспользуя язык выражений Symfony или аналогичный, чтобы я мог проверить, существует ли user
. Или есть лучший способ?