小枝のフィールドの空白を削除するにはどうすればよいですか?


9

私はノードのフィールド値を印刷しようとします-空白なしのtemplate.html.twig。このフィールドは、管理ページの選択です。

Location|Location 
Achat|Achat

これは私の価値が印刷される方法です:

{{content.field_type}}

ここに画像の説明を入力してください

field.html.twig:

{% for item in items %}
{{- item.content -}}
{%  endfor %}

私はいくつかの小枝引数を試してみてください

{{content.field_type | trim}}

しかし、このように印刷すると、空になります。

では、この空白はどこにあるのでしょうか?if else条件で値をテストしようとした場合も同じです:

空白のため、これは機能しません:

{%if content.field_type == "Achat"%}

この作品 :

{%if content.field_type | render | trim == "Achat"%}

したがって、値をテストする場合は問題ありませんが、使用する場合は値を出力します

{{content.field_type | render | trim}}

私は空白で同じ結果を得ました。

だから誰かが私にこの空白をどこに追加するのか、そして小枝でこれをどのように削除するのかを教えてくれるなら。boostrapテーマを使用していますが、空白を追加するものはありません。


使ってみましたspacelessか?twig.sensiolabs.org/doc/2.x/tags/spaceless.html
Kevin

はい、同じ結果
Kevin

1
また、レンダーアレイをチェックしたくない場合は、フィールド自体でチェックを実行しますnode.field_type.value == 'Achat'
Kevin

テストには同意しますが、印刷には同意しますか?なぜ空白?
ケビン

@Kevinについてコメントをお願いします:なぜ/レンダーアレイ上のエンティティオブジェクトをチェックするときにビットを作成できますか?例:profile.some_field vs content.some_field?私のテンプレートはコメントで言う:それらをすべて印刷するには「content」を使用するか、「content.title」などのサブセットを印刷します Tks :)
Kojo

回答:


5

テンプレートがあるようですが、おそらくfield.html.twigこのスペースが追加されています。twigデバッグを有効にして、どのテンプレートのファイルが使用されているかを確認できます。

また、私はそれが上の値をテストする方が良いと思うnode.field.valueの代わりに、content.fieldそれが唯一のレンダリングのために行われますよう。

小枝演算子{% for ... %}もスペースを追加することに注意してください。-たとえば、次のようにそこにも追加する必要があります。

{%- for item in items %}
{{ item.content }}
{%  endfor -%}

テンプレートの使用はfield.html.twigです。{%-forを追加するだけですが、同じです。常にここに空白があります... node.field.valueを使用する値をテストすることに同意します。
ケビン

このハイフンは何をしていますか?そして、なぜこのデフォルトの動作ではないのですか?
leymannx

1
ああ!空白制御修飾子。おや、これは醜いです。これは本当にグローバルなデフォルトであるはずです。
leymannx

4

私は何度も試しましたが、スペースレスタグはかなりうまくいきます。

次の構文を使用します。

{% spaceless %}

  {{content.field_type}}

{% endspaceless %}

3
まだ空白があります
Kevin

私も全くがっかりしました。
ランデル2018

興味深いことに、これは別のプロジェクトでうまくいきました。
Randell

多分あなたはDrupalキャッシュをクリアしなかったのですか?
ロビーゴッド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.