小枝テンプレートでブールフィールドをテストする方法は?


8

field_boolean ブールフィールドです。

{% if content.field_boolean == true %}または{% if content.field_boolean == 1 %}または{% if content.field_boolean == 'true' %}または{% if content.field_boolean == '1' %}動作しません。

チェックボックスがオンになっているかどうかをテストするにはどうすればよいですか?

回答:


14

レンダー配列ではなく、生の値を確認したいとします。

例:

{% if node.field_foo is not empty %}

これにより、フィールドが存在するかどうかが確認されます。レンダー配列は、値のレンダリング以外には役立ちません。

見ないでくださいcontent-それは単にレンダー配列です。エンティティオブジェクト(ノード、段落など)のフィールドを確認します。Twig XDebugをインストールして、テンプレートにブレークポイントを設定したり、で変数を検査したりできますmytheme.theme

あなたはすべきで見てすることができ{% if node.field_foo.value ... %}、等価チェックのために。


生の値を確認するにはどうすればよいですか?'content.field_boolean.value'が機能していないようです。また、生の値をレンダリングについての私の他の質問(参照drupal.stackexchange.com/questions/228388/...
ピム

3
「内容」を見ないでください。エンティティオブジェクト(ノード、段落など)のフィールドを確認します。Twig xdebugをインストールして、テンプレートにブレークポイントを設定したり、mytheme.themeの変数を調べたりすることができます。
ケビン

どうもありがとうございました!これで問題は解決しました。他の質問に同じ回答を投稿したい場合は、他のユーザーに役立つかもしれません。それ以外の場合は自分で答えます。
ピム

もう1つの質問です。twigテンプレートとは別に、content.fieldの代わりにnode.fieldまたはparagraph.fieldを直接使用する方が効率的ですか?
ピム

1
回答を更新しました。
ケビン

1

これが私がこれをどのように解決したかです、それはtwig_field_valueプロジェクトを必要とします。

ブールフィールドのオンとオフの値をそれぞれ1と0に設定します。

小枝で:

{% if content.field_foo|field_raw('value')|number_format(0,'.',',') is same as('0') %} <span>the box is NOT checked</span> {% endif %}


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.