手册
目录
Symfony的自带了强力的表达式语言组件。它允许你在配置中添加高级自定义逻辑。
Symfony框架在以下方面很好地利用了表达式:
创建³³关于使用状语从句:表达式的更多内容请参考表达式语法。
接受除了ROLE_ADMIN这种角色之外,isGranted也。接受Expression对象:
use Symfony\Component\ExpressionLanguage\Expression;// ... public function indexAction(){
$this->denyAccessUnlessGranted(new Expression(
'"ROLE_ADMIN" in roles or (user and user.isSuperAdmin())'
)); // ...}本例中,如果当前用户有ROLE_ADMIN或者当前的用户对象的isSuperAdmin()方法返回true那么访问将被授权(注意:你的用户对象未必拥有isSuperAdmin方法,这个方法只为此例出现)。
这就用到了一个表达式,你还可以学习更多关于表达languange的语法,参考表达式语法。
在表达式中,你可以访问以各种变量:
useranon,如果未经认证的话)。rolesIS_AUTHENTICATED_*属性(参考下面的功能)。objectisGranted方法的对象(如果有的话)。tokentrust_resolverAuthenticationTrustResolverInterface接口,其对象是:可能你希望使用下面的is_*函数来替代。另外,你可以在表达式中访问各种函数:
is_authenticatedtrue,如果用户通过“记住我”或“完全”身份认证通过的话 - 比如,如果用户已登录,就返回true。is_anonymousisGranted函数中使用IS_AUTHENTICATED_ANONYMOUSLY。is_remember_meIS_AUTHENTICATED_REMEMBERED,见下文。is_fully_authenticatedIS_AUTHENTICATED_FULLY,见下文。has_role'ROLE_ADMIN' in roles。相关
视频
RELATED VIDEOS
科技资讯
1
2
3
4
5
6
7
8
9
精选课程
共5课时
17.2万人学习
共49课时
77万人学习
共29课时
61.7万人学习
共25课时
39.3万人学习
共43课时
70.9万人学习
共25课时
61.6万人学习
共22课时
23万人学习
共28课时
33.9万人学习
共89课时
125万人学习