如果在树枝中为 null,则设置默认值

Set default value if null in twig

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

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

如果数据库中的用户 ID 为 NULL,我想设置默认值 'User unknown'。

喜欢:{% if item.userId is null %} --> 比设置默认值

注意:我知道在这里使用 if else 但是因为我在许多宫殿中都有这个 fistName - lastName,所以我想避免使用 if else 在每个部分。我想在任何地方都设置默认值,以防 userId 为 null 而无需在每个地方重复代码。

我怎样才能做到这一点?

编辑

您可以使用以下方式设置变量:

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

如果设置你的意思是输出 'User unknown',一个简单的 if else 语句就可以了

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

在呈现输出的代码中设置默认值可能更容易,其中 items 被发送到 Twig。 array_merge 通常用于此 - $item = array_merge($defaultItem, $item);。在这里,$item 覆盖了 defaults 中设置的值。

在模板中,您还可以在各个字段上使用空合并运算符 ??{{ item.userId.firstName ?? 'unknown firstName' }}