Bagaimana cara kerja clean_class dan clean_id?


12

Saya baru mengenal sintaks Drupal 8 dan Twig. Saya tidak dapat memahami cara kerja filter clean_class "region | clean_class"? Apa itu clean_class di sini? Saya telah menambahkan kode berikut dalam file page.html.twig saya

{%
  set classes = [
         'region',
         'region-' ~ region|clean_class,
       ]
%}

{{ dump(classes) }}

Hasil cetaknya:

array (size=2)
  0 => string 'region' (length=6)
  1 => string 'region-' (length=7)

Jawaban:


18

clean_classadalah filter yang memanggil \Drupal\Component\Utility\Html::getClass()metode pada string, yang:

Mempersiapkan string untuk digunakan sebagai nama kelas yang valid.

Pada dasarnya menghapus karakter yang tidak valid dari kelas HTML dalam persiapan untuk rendering. clean_idadalah setara dengan ID HTML.

Ada juga filter lain yang terdaftar pada core, lihat TwigExtension :: getFilters untuk detail lebih lanjut.


Sepertinya dalam contoh OP, region | clean_class tidak mengembalikan apa-apa karena dua kelas yang dihasilkan dalam {{dump (class)}} adalah 'region' dan 'region-' Saat ini saya memiliki masalah yang sama dengan mencoba menambahkan nama taksonomi istilah ke id menggunakan atribut.setAttribute ('id', 'unggulan-industri-' ~ nama | clean_id) Jika saya menghapus filter | clean_id, itu hanya mencetak 'Array'
amklose
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.