Jak działają clean_class i clean_id?

13

Jestem nowy w składni Drupal 8 i Twig. Nie jestem w stanie zrozumieć, jak działa jego filtr clean_class "region | clean_class"? Co to jest clean_class tutaj? Dodałem następujący kod do mojego pliku page.html.twig

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

{{ dump(classes) }}

Jego wynik drukowania:

array (size=2)
  0 => string 'region' (length=6)
  1 => string 'region-' (length=7)
Reshma
źródło

Odpowiedzi:

19

clean_classjest filtrem, który wywołuje \Drupal\Component\Utility\Html::getClass()metodę na łańcuchu, który:

Przygotowuje ciąg znaków do użycia jako prawidłową nazwę klasy.

Zasadniczo usuwa nieprawidłowe znaki z klas HTML w ramach przygotowań do renderowania. clean_idjest odpowiednikiem identyfikatorów HTML.

Istnieją również inne filtry zarejestrowane przez rdzeń, zobacz TwigExtension :: getFilters, aby uzyskać więcej informacji.

Clive
źródło
Wygląda na to, że w przykładzie PO region | clean_class nic nie zwraca, ponieważ dwie klasy wynikowe w {{dump (klas)}} to „region” i „region-” Mam obecnie ten sam problem przy próbie dodania nazwa terminu systematyka do identyfikatora za pomocą atrybutów.setAttribute ('id', 'featured-industry-' ~ name | clean_id) Jeśli usunę filtr | clean_id, po prostu wypisze „Array”
amklose