![](/img/trans.png)
[英]Symfony4/Twig - is_granted() only checks first role in an array of roles
[英]Passing Variable to is_granted in twig (Symfony)
我在让树枝中的is_granted函数测试变量时遇到麻烦。 在这种情况下,我正在测试是否授予当前用户form.roles中包含的角色,但是不幸的是,is_granted测试将仅接受字符串,并且传递变量始终返回false。
<div class="form-group well">
{{ form_label(form.roles) }}
{% for role in form.roles %}
{{ role.vars.value|trim }}{% if is_granted('{{ role.vars.value }}') %}
<div class="row marketing ">
<div class="col-sm-6">
{{ form_label(role) }}
</div>
<div class="col-sm-6">
{{ form_widget(role, {"attr": {"class": "form-control"}} ) }}
</div>
</div>
{% endif %}
{% endfor %}
</div>
我试图过滤输出以确保它是一个字符串,但没有成功,并且{%if is_granted('{{role.vars.value}}')%}中的引号必须存在,因为它们会引起系统错误不包括在内。
此代码的输出是:
分配的角色ROLE_SYSTEM_ADMIN ROLE_REGISTRAR ROLE_ADMIN ROLE_PRINCIPAL ROLE_HEAD_TEACHER ROLE_TEACHER ROLE_STUDENT ROLE_PARENT ROLE_USER
关于如何从给定的值中获得is_granted进行测试的任何想法吗?
您不应该打开新的Twig标签。 {{ ... }}
用于转储(回显),在这种情况下,您不想回显/转储role.vars.value
的内容。 因此将其更改为: {% if is_granted(role.vars.value) %}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.