Twig Drupal 8 中的 switch 语句
switch statement in twig drupal 8
drupal 8 中的 twig 有 switch case 语句吗?
类似于:
{% set size = rows | length %}
{% switch rows %}
{% case "1" %}
{{ do something }}
{% case "2" %}
{{ do example }}
{% case "3" %}
{{ do that }}
{% default %}
<p>A font walks into a bar.</p>
<p>The bartender says, “Hey, we don’t serve your type in here!”</p>
{% endswitch %}
我试过这个:
{% if size ==1 %}
values 1
{% elseif size ==2 %}
values 2
{% else %}
value not found
{% endif %}
但它似乎停留在第一个语句上永远不会进入第二个 section/statement 即使值为 2
我也想为我的 Drupal 8 视图模板做一个 "switch statement",但我无法让它工作。我有以下内容:
{% set rowsLength = rows|length %}
{% switch rowsLength %}
{% case 1 %}
...
{% case 2 %}
...
{% case 0 %}
...
{% endswitch %}
但是当上传时,它只是没有呈现并放置在 "something is wrong" 的那条消息中。所以我最终使用了以下 "if" 语句:
{% set rowsLength = rows|length %}
{% if rowsLength > 0 and rowsLength < 4 %}
{% set nav_size = "small-carousel" %}
{% elseif rowsLength > 4 and rowsLength < 6 %}
{% set nav_size = "medium-carousel" %}
{% else %}
{% set nav_size = "" %}
{% endif %}
希望对您有所帮助。
我也通过使用 if 语句解决了
{% set rowsLength = rows|length %}
{% if size == 1 %}
values 1
{% elseif size == 2 %}
values 2
{% else %}
value not found
{% endif %}
我认为 Symfony/Twig 中不存在 Switch 函数。
你必须回到标准
{% if condition %}
...
{% elseif condition2 %}
...
{% else %}
...
{% endif %}
希望能帮到你..
我也 运行 遇到过这个问题。我希望 switch 语句能帮助我编写更简洁的代码,但我总是遇到语法错误,意外的 switch 标记。
我发现 switch 语句在一些 3rd 方网站上有记录,但官方文档中没有提到 https://twig.symfony.com/doc/3.x/
之所以如此,twig 的开发人员希望让网页设计人员使用的标签简单易用。 if elseif else endif https://github.com/twigphp/Twig/pull/185
已经涵盖了 switch 语句的功能
如果您仍想在模板中使用 switch 语句,可以使用插件添加该功能,例如这个 https://packagist.org/packages/buzzingpixel/twig-switch
归根结底,只使用 if elseif 等等真的还不错。可以写的还算干净:
<button type="button" class="btn {%
if project.status == 'ok' %}btn-success{%
elseif project.status == 'active' %}btn-info{%
elseif project.status == 'failed' %}btn-danger{%
else %}btn-warning{%
endif
%}">
drupal 8 中的 twig 有 switch case 语句吗?
类似于:
{% set size = rows | length %}
{% switch rows %}
{% case "1" %}
{{ do something }}
{% case "2" %}
{{ do example }}
{% case "3" %}
{{ do that }}
{% default %}
<p>A font walks into a bar.</p>
<p>The bartender says, “Hey, we don’t serve your type in here!”</p>
{% endswitch %}
我试过这个:
{% if size ==1 %}
values 1
{% elseif size ==2 %}
values 2
{% else %}
value not found
{% endif %}
但它似乎停留在第一个语句上永远不会进入第二个 section/statement 即使值为 2
我也想为我的 Drupal 8 视图模板做一个 "switch statement",但我无法让它工作。我有以下内容:
{% set rowsLength = rows|length %}
{% switch rowsLength %}
{% case 1 %}
...
{% case 2 %}
...
{% case 0 %}
...
{% endswitch %}
但是当上传时,它只是没有呈现并放置在 "something is wrong" 的那条消息中。所以我最终使用了以下 "if" 语句:
{% set rowsLength = rows|length %}
{% if rowsLength > 0 and rowsLength < 4 %}
{% set nav_size = "small-carousel" %}
{% elseif rowsLength > 4 and rowsLength < 6 %}
{% set nav_size = "medium-carousel" %}
{% else %}
{% set nav_size = "" %}
{% endif %}
希望对您有所帮助。
我也通过使用 if 语句解决了
{% set rowsLength = rows|length %}
{% if size == 1 %}
values 1
{% elseif size == 2 %}
values 2
{% else %}
value not found
{% endif %}
我认为 Symfony/Twig 中不存在 Switch 函数。 你必须回到标准
{% if condition %}
...
{% elseif condition2 %}
...
{% else %}
...
{% endif %}
希望能帮到你..
我也 运行 遇到过这个问题。我希望 switch 语句能帮助我编写更简洁的代码,但我总是遇到语法错误,意外的 switch 标记。
我发现 switch 语句在一些 3rd 方网站上有记录,但官方文档中没有提到 https://twig.symfony.com/doc/3.x/
之所以如此,twig 的开发人员希望让网页设计人员使用的标签简单易用。 if elseif else endif https://github.com/twigphp/Twig/pull/185
已经涵盖了 switch 语句的功能如果您仍想在模板中使用 switch 语句,可以使用插件添加该功能,例如这个 https://packagist.org/packages/buzzingpixel/twig-switch
归根结底,只使用 if elseif 等等真的还不错。可以写的还算干净:
<button type="button" class="btn {%
if project.status == 'ok' %}btn-success{%
elseif project.status == 'active' %}btn-info{%
elseif project.status == 'failed' %}btn-danger{%
else %}btn-warning{%
endif
%}">