Я определяющая безопасность для моего сайта в security.ymlконтроля доступа Symfony с переменным внутри маршрута
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/ad/new, role: ROLE_USER }
- { path: ^/myAds, role: ROLE_USER }
- { path: ^/payments, role: ROLE_USER }
- { path: ^/pay, role: ROLE_USER }
Но я не уверен, как такой маршрут будет добавлен здесь:
mybundle_contact_advertiser:
path: /ad/{id}/contact
defaults: { _controller: MyBundle:Default:contactAdvertiser,id:null}
Как это id
определено, учитывая, что я не могу это сделать так:
- { path: ^/ad, role: ROLE_USER }
в пути, как
mybundle_ad:
path: /ad/{id}
defaults: { _controller: MyBundle:Default:viewAd ,id:null}
Не работает для незарегистрированных пользователей.
Вам не нужно добавлять каждый маршрут в security.yml, есть подстановочные знаки, которые будут работать точно так же, как в регулярном выражении, чтобы проверить, какая часть маршрутов требует аутентифицированного пользователя и какой маршрут не ... и, кроме того, если вы ставите параметр в середине вашего маршрута, который может быть пустым, может быть/ad/null/contact ... вы действительно этого хотите? Почему бы не сделать параметр необязательным, если он может быть нулем – nixoschu
Правда, он не должен быть нулевым. –