我知道检查变量是否使用
{# defined works with variable names #}
{% if foo is defined %}
...
{% endif %}
如果未定义变量,则使用以下命令设置变量:
{% set foo = 'bar' %}
有没有办法把这个变量设置为undefined?我有一个变量被传递到一个twig html文件中,它并不总是被传递,我只是遇到了一个可能为空的情况。当它为空时,我想把它设置为undefined,因为文件的其余部分的逻辑语句都能正常工作,这是一个痛苦的测试,首先定义,然后在每次使用该变量时再次返回null。
我遇到了这个conversation,想知道是否还有其他人有一个解决方案,要么取消设置变量,要么有一个更好的方法来设置一个可以是未定义或空的变量。
更新代码:我正在我的后台管理部分工作。由于各种原因,我没有使用SonataAdmin,并希望建立自己的。在这个区域,我可以查看所有用户的摘要,在一些页面,我可以查看和编辑用户的个人资料的一部分。我有一个标题小枝文件,其中包含链接到摘要页面,然后另一行包含链接到用户的个人资料部分。
对于我的路由admin_profile_show -我需要包含用户来加载正确的页面,但是如果用户在这里为空,这将导致错误,因为它无法到达username属性。
{% if user is defined %}
{{ path('admin_profile_show', { 'username': user.username}) }}
...other routes and links
{% endif %}
我想我真实的的问题是,我允许用户名可以为空的情况,所以它被定义,但为空。在我改变其他文件的逻辑之前,我想知道是否有一个unset变量,它的工作方式如下:
{% if user is null %}
{% unset user %}
{% endif %}
1条答案
按热度按时间c9x0cxw01#
正如上面提到的F21,在模板中修改数据不是一个好的做法,但如果你真的想这样做,你可以简单地扩展Twig来完成这项工作(我的意思是你可以通过extending it创建自己的函数),下面是一个简单的例子: