Bagaimana menghapus spasi putih di lapangan di ranting?


9

Saya mencoba untuk mencetak nilai bidang dalam sebuah node - template.html.twig tanpa spasi. Bidang ini adalah pilih di halaman admin.

Location|Location 
Achat|Achat

Beginilah nilai saya dicetak:

{{content.field_type}}

masukkan deskripsi gambar di sini

field.html.twig:

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

Saya mencoba beberapa argumen ranting seperti

{{content.field_type | trim}}

Tetapi ketika saya mencetak seperti ini, itu kosong.

Jadi di mana ruang putih ini? sama jika saya mencoba untuk menguji nilai dalam kondisi if else:

Ini tidak berfungsi karena spasi putih:

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

Pekerjaan ini :

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

Jadi untuk menguji suatu nilai tidak apa-apa, tetapi untuk mencetak nilai jika saya gunakan

{{content.field_type | render | trim}}

saya mendapat hasil yang sama dengan spasi putih.

Jadi jika seseorang bisa memberi tahu saya di mana menambahkan spasi ini dan bagaimana menghapus ini di ranting. Saya menggunakan tema boostrap, tetapi saya tidak melihat apa pun yang menambahkan spasi.


Sudahkah Anda mencoba menggunakan spaceless? twig.sensiolabs.org/doc/2.x/tags/spaceless.html
Kevin

ya, hasil yang sama
Kevin

1
Anda juga tidak ingin melakukan pemeriksaan pada render array, melakukannya di lapangan sendiri melaluinode.field_type.value == 'Achat'
Kevin

Setuju untuk ujian, tetapi untuk hasil cetak? mengapa spasi
Kevin

@Kevin tentang komentar Anda, tolong: bisakah Anda mengembangkan sedikit mengapa / ketika memeriksa objek entitas di atas array render konten? misal profile.some_field vs content.some_field? templat saya katakan dalam komentar: Gunakan 'konten' untuk mencetak semuanya, atau cetak subset seperti 'content.title'. Tks :)
Kojo

Jawaban:


5

Kedengarannya bagi saya bahwa Anda memiliki template, mungkin field.html.twigitu menambahkan ruang ini. Anda dapat mengaktifkan twigdebug untuk melihat file templat mana yang digunakan.

Juga, saya pikir lebih baik untuk menguji nilai node.field.valuedaripada content.fieldhanya dilakukan untuk rendering saja.

Perhatikan bahwa operator ranting {% for ... %}juga menambahkan spasi, jadi Anda harus menambahkan -juga di sana untuk misalnya:

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

Penggunaan template adalah field.html.twig, saya hanya menambahkan - dalam {% - untuk, tetapi sama, spasi selalu di sini ... saya setuju untuk menguji nilai untuk menggunakan node.field.value.
Kevin

Apa yang dilakukan tanda hubung ini? Dan mengapa perilaku default ini tidak terjadi?
leymannx

1
Ah! Pengubah Kontrol Whitespace . Astaga, ini jelek. Ini benar-benar harus menjadi standar global.
leymannx

4

Saya mencoba berkali-kali dan tag tanpa spasi bekerja cukup baik.

Gunakan sintaks berikut:

{% spaceless %}

  {{content.field_type}}

{% endspaceless %}

3
saya masih mendapat ruang kosong
Kevin

Saya juga sangat kecewa.
Randell

Cukup menarik, ini berhasil bagi saya untuk proyek terpisah.
Randell

mungkin Anda tidak menghapus cache drupal?
Robbiegod
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.