Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
twig drupal 8中的switch语句_Drupal_Twig_Theming - Fatal编程技术网

twig drupal 8中的switch语句

twig drupal 8中的switch语句,drupal,twig,theming,Drupal,Twig,Theming,Drupal8中的twig是否有switch case语句 比如: {% set size = rows | length %} {% switch rows %} {% case "1" %} {{ do something }} {% case "2" %} {{ do example }} {% case "3" %} {{ do that }} {% default %} <p>A

Drupal8中的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 %}

但似乎它在第一条语句上的阻塞从未进入第二节/语句,即使值为2,我也想为Drupal 8的视图模板做一个“切换语句”,但我无法让它工作。我有以下几点:

{% set rowsLength = rows|length %}
{% switch rowsLength %}
    {% case 1 %}
        ...
    {% case 2 %}
        ...
    {% case 0 %}
        ...
{% endswitch %}
但是当上传的时候,它只是给出了一个没有呈现和放置在“有什么不对劲”的信息。因此,我最终使用了以下“如果”语句:

{% 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 %}
{%set rowsLength=rows | length%}
{%如果rowsLength>0且rowsLength<4%}
{%set nav_size=“小转盘”%}
{%elseif rowsLength>4且rowsLength<6%}
{%set nav_size=“中等旋转木马”%}
{%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中不存在切换功能。 你必须依靠一个标准

{% if condition %}
...
{% elseif condition2 %}
...
{% else %}
...
{% endif %}

希望我能帮上忙。

我也遇到了这个问题。我希望switch语句能帮助我编写更简洁的代码,但我总是遇到语法错误,意外的switch标记

我发现一些第三方网站上记录了switch语句,但官方文档中没有提到

出于这个原因,twig的开发人员希望保持标签的简单性,以便web设计师使用。if-elseif-else-endif已经涵盖了switch语句的功能

如果您仍然希望在模板中使用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
%}">

<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
%}">