【问题标题】:How to display the TWIG code if the result is not 0?如果结果不为 0,如何显示 TWIG 代码?
【发布时间】:2020-10-11 08:38:49
【问题描述】:

我在 Drupal 8 中有一个 TWIG 模板。“危险”值根据每个视图的结果递增。如果“dangers”的结果不是0,如何显示TWIG代码

我测试了这段代码{% if dangers > 0 %},但它不起作用:

{% set dangers = 0 %}
{% if dangers > 0 %}
Vous avez
{% if drupal_view_result('boutique_page_liste_des_taches_aucun_produit', 'block_1', store_entity.id()) is empty %}
  {% set dangers = dangers + 1 %}
{% endif %}
{% if drupal_view_result('boutique_page_liste_des_taches_aucune_variation', 'block_1', store_entity.id()) is not empty %}
  {% set dangers = dangers + 1 %}
{% endif %}
{% if drupal_view_result('boutique_page_liste_des_taches_commande', 'block_1', store_entity.id()) is not empty %}
  {% set dangers = dangers + 1 %}
{% endif %}
{% if drupal_view_result('boutique_page_liste_des_taches_mode_de_livraison', 'block_1', store_entity.id()) is empty %}
  {% set dangers = dangers + 1 %}
{% endif %}
{% if drupal_view_result('boutique_page_liste_des_taches_passerelle_de_paiement', 'block_1', store_entity.id()) is empty %}
  {% set dangers = dangers + 1 %}
{% endif %}
{{ dangers }}
tâches importantes à traiter dans votre {{ store_entity.type.entity.label }} "{{ store_entity.name.value }}".
<a href="/store/{{ store_entity.id }}/tasks" data-drupal-link-system-path="/store/{{ store_entity.id }}/tasks">Voir la liste</a>
{% endif %}

【问题讨论】:

    标签: if-statement twig operators drupal-8


    【解决方案1】:

    你的条件错了,如果我从你的实际代码中做一个简单的逻辑,它会说:

    dangers = 0
    if dangers > 0 
      compute dangers 
      display dangers
    end if
    

    所以,是的,dangers 将始终为 0,因为您在条件 dangers &gt; 0 中计算 dangers 的值。

    你的正确逻辑应该是

    dangers = 0
    compute dangers 
    if dangers > 0 
      display dangers
    end if
    

    所以对于你的树枝代码,这个 c 将是正确的版本:

    {% set dangers = 0 %}
    {% if drupal_view_result('boutique_page_liste_des_taches_aucun_produit', 'block_1', store_entity.id()) is empty %}
      {% set dangers = dangers + 1 %}
    {% endif %}
    {% if drupal_view_result('boutique_page_liste_des_taches_aucune_variation', 'block_1', store_entity.id()) is not empty %}
      {% set dangers = dangers + 1 %}
    {% endif %}
    {% if drupal_view_result('boutique_page_liste_des_taches_commande', 'block_1', store_entity.id()) is not empty %}
      {% set dangers = dangers + 1 %}
    {% endif %}
    {% if drupal_view_result('boutique_page_liste_des_taches_mode_de_livraison', 'block_1', store_entity.id()) is empty %}
      {% set dangers = dangers + 1 %}
    {% endif %}
    {% if drupal_view_result('boutique_page_liste_des_taches_passerelle_de_paiement', 'block_1', store_entity.id()) is empty %}
      {% set dangers = dangers + 1 %}
    {% endif %}
    
    {% if dangers > 0 %}
      Vous avez {{ dangers }} tâches importantes à traiter dans votre {{ store_entity.type.entity.label }} "{{ store_entity.name.value }}".
      <a href="/store/{{ store_entity.id }}/tasks" data-drupal-link-system-path="/store/{{ store_entity.id }}/tasks">Voir la liste</a>
    {% endif %}
    

    专业提示:虽然您不需要在 HTML 中正确缩进和分隔代码,但我真的建议您这样做,这样可以帮助您更轻松地自己发现错误。

    【讨论】:

    • 谢谢,是的,我明白了逻辑
    • 但是,我没有从 Drupal 8 缓存中排除 TWIG 代码的解决方案。即使禁用视图缓存也不起作用。
    猜你喜欢
    • 2020-06-01
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    • 2015-12-15
    • 1970-01-01
    • 2018-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多