symfony 分支中为空时设置默认值

4xrmg8kj  于 2022-11-16  发布在  其他
关注(0)|答案(3)|浏览(208)

我正在细枝视图中循环我的结果..

{% for item in items %}
    <li> {{ item.userId.firstName }} {{ item.userId.lastName }} </li>
 {% endfor %}

如果数据库中的用户ID为NULL,我希望设置默认值“用户未知”。
Like:{% if item.userId is null %}--〉比设置默认值
注意:我知道在这里使用if else,但是因为我在许多地方都有这个 fistName - lastName,所以我想避免在每个部分都使用***if else***。我想在每个地方都设置默认值,以防userId为空,而不是在每个地方重复代码。
我该怎么做?

s4n0splo

s4n0splo1#

编辑
您可以使用以下命令设置变量:

{% set name = item.userId is null ? 'User unknown' : item.userId.firstName ~ ' ' ~ item.userId.lastName %}

如果设置的意思是输出“Userunknown”,那么简单的ifelse语句就可以实现这个目的

{% for item in items %}
    {% if item.userId is null %}
        <li>User unknown</li>
    {% else %}
        <li> {{ item.userId.firstName }} {{ item.userId.lastName }} </li>
    {% endif %}
{% endfor %}
ikfrs5lh

ikfrs5lh2#

在呈现输出的代码中设置默认值可能更容易,其中items被发送到Twig。array_merge通常用于此-$item = array_merge($defaultItem, $item);。这里,$item覆盖了默认值中设置的值。
在模板中,您还可以对单个字段使用空合并运算符??{{ item.userId.firstName ?? 'unknown firstName' }}

kxkpmulp

kxkpmulp3#

也许有点晚了,但Twig似乎有一个默认值的过滤器:
https://twig.symfony.com/doc/2.x/filters/default.html

相关问题