Bir dal şablonunda ham alan değerini nasıl alabilirim?


27

alanım düz metin alanı. {{ content.field_myfield }}alanı HTML işaretlemesi ve alan etiketi ile oluşturur.

Alanın işlenmemiş değerini nasıl değerlendirebilirim? {{ content.field_myfield.value }}çalışmıyor

Yanıtlar:


45

{{ entity.field_name.value }} gerçek ham değeri almak için, etiketler ve kodlamalar içerir.

  • Örnek: {{ node.body.value }}
  • sonuç: <p>Batman &amp; Robin</p>

{{ content.field_name.0 }} Ham değer eksi etiketleri ve kodlama elde etmek için.

  • Örnek: {{ content.body.0 }}
  • sonuç: Batman & Robin

çiğ

Bu filtre, mümkün olduğunda, özellikle kullanıcı tarafından girilebilecek verileri çıktıyorsanız kullanılmamalıdır. Drupal 8'deki otomatik kaçış hakkında daha fazla bilgi için bu sayfaya bakın .

source: Filters - Twig Şablonlarında Değişkenleri Değiştirme

Ham filtre, değeri "güvenli" olarak işaretler; bu, otomatik kaçış özelliğinin etkin olduğu bir ortamda, ham maddenin kendisine uygulanan son filtre olması durumunda , bu değişkenin çıkmayacağı anlamına gelir.

kaynak: Twig'in resmi belgeleri


Örneğin, şunları kullanabilirsiniz:

{{ node.body.value|striptags }}
{{ paragraph.field_text.value|striptags }}

Twig'in | striptags kullanılmasındaki problem , işaretlemenin değil html öğelerinin çift kodlamasıdır, yani & olur & sonra & amp; - Berdir


6
içerik örnekleri doğru değil. Drupal.stackexchange.com/questions/198694/… adresine bakın . Kullanabileceğiniz şey content.field_text.0, sonra alan şablonları olmadan yalnızca ilk alan öğesinin iç kısmını elde edersiniz. Bu özellikle ham değeri değil, formatlanmış çıktıyı istediğiniz listeleri, referansları vb. İçin yararlıdır
Berdir

2
Daha iyi, ama yine de doğru değil. content.field_myfield | striptags çalışmıyor, buna bir render dizisi geçiremezsiniz. Önce onu oluşturup sonra içinden geçirmen gerekir. striptag'lar ve benzerleri iki kez kodlanabilen & ve diğer karakterlerle de sorun yaşar, bu nedenle aslında | striptags | raw'a ihtiyacınız vardır.
Berdir

2
Just | raw, html etiketlerini bırakır ve bunları yazdırır. Striptags ile ilgili sorun daha sonra biçimlendirme yerine html öğelerinin çift kodlamasıdır, bu nedenle & olur & amp; ve sonra & amp;
Berdir

2
Bu çift kaçış değil, bunu görebilirsiniz <ve >doğru görüntüleniyor. Ve işareti çıkmadan önce muhtemelen tek zaten kaçar. Ancak soru, düz metin alanı değil , metin filtreleri tarafından işlenen biçimlendirilmiş metin alanı değil . (Bu sorulmamış soruyu cevaplamak için ham değer (eğer biri gerçekten isterse) hala .value
içeride

2
Evet, demek istediğim bu (oto-kaçış = tek kaçış). Bu nedenle varlık alanı değerlerinin çıktısı için örnekleriniz, sadece striptag filtresi olmadan mükemmeldir, çünkü bu çirkin çift çıkışlı çıktı üretir. ( &amp;Örnekteki çıktının BTW'si yanlış, alan içeriği bir kez zaten kaçılmadığı sürece bu otomatik yakalamada gerçekleşmez).
4k4

5

Bu durumda Twig Field Value modülünü kullanabilirsiniz . Bu modülü kurduktan sonra, alan oluşturma dizilerinden kısmi verilere erişeceksiniz. Örneğin

{{ content.field_name|field_value }}
content.field_image|field_target_entity.uri.value

Projeler sayfasında daha fazla bilgi


1
{{ content.body | raw }} 

bir dal şablonunda ham alan değerini al

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.