如何将变量设置为未定义?

问题描述 投票:0回答:0
{# defined works with variable names #} {% if foo is defined %} ... {% endif %}

如果使用以下方式,则设置一个变量:
{% set foo = 'bar' %}

有一种方法可以将变量设置为未定义? 我有一个变量,该变量传递给了一个twig html文件,并且并非总是通过,而我只是遇到了可能无效的情况。 当它为null时,我想将其设置为未定义,因为文件中其余部分的逻辑语句正常工作,并且首先是定义的疼痛测试,然后每次使用此变量,第二次null。
I遇到了这一conversation
,想知道其他人是否有解决变量的解决方案,或者是为可以不确定或无效的变量设置的更好方法。

用代码任意: 我正在研究我的后端管理部门。 由于各种原因,我没有使用Sonataadmin,而是想建立自己的奏鸣曲。 在此领域,我可以查看所有用户的摘要,在某些页面中,我可以查看和编辑用户个人资料的部分。 我有一个包含指向摘要页面的链接的标题小树枝文件,然后包含指向用户配置文件部分的链接的另一行。

对于我的路由admin_profile_show-我需要包含用户加载正确的页面,但是如果用户在此处为null,这将导致错误,因为它无法到达用户名属性。

{% if user is defined %} {{ path('admin_profile_show', { 'username': user.username}) }} ...other routes and links {% endif %} 我猜想我的真正问题是,我允许用户名可以为null的情况,因此将其定义为null。 在更改其他文件的逻辑之前,我想知道是否有一个未设置的变量可以如下:

{% if user is null %} {% unset user %} {% endif %}

上面提到的AS F21,这不是一个很好的练习模板中的数据模板,但是如果您真的想这样做,您可以简单地扩展Twig完成这项工作(我的意思是您可以通过扩展IT
来创建自己的函数),这是一个简单的例子:

class STWebExtension extends \Twig_Extension { /** * @return array|\Twig_SimpleFunction */ public function getFunctions() { return [ new \Twig_SimpleFunction('array_keys', [$this, 'array_keys']), ]; } /** * @param array $input * @param null $search_value * @param null $strict * @return array */ public function array_keys(array $input, $search_value = null, $strict = null) { return array_keys($input, $search_value, $strict); //here we are simply returning PHP's built-in array_keys function. } /** * @return string */ public function getName() { return 'st_web_extension'; } }

	
php symfony twig
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.