【发布时间】:2016-04-23 19:14:21
【问题描述】:
我在 security.yml 中为我的网站定义安全性
- { 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 中,有通配符可以像在正则表达式中一样扫描路由的哪个子部分需要经过身份验证的用户,而哪个路由不需要......此外,如果您在路线中间放置一个可以为 null 的参数,您的路线可以是 /ad/null/contact ...您真的想要吗?如果可以为null,为什么不将参数设为可选
-
没错,它不应该为空。
标签: php symfony symfony-security