Chcę uzyskać wszystkie zmienne dostępne w pliku motywu formularza Symfony form_div_layout.html.twig, czytałem oficjalną dokumentację Symfony i wyszukiwane w Internecie, ale nie mogłem znaleźć żadnych przydatnych informacji na ten temat, czy ktoś może mi pomóc?Czy istnieje pełna lista zmiennych, których można użyć w formularzu_div_layout.html.twig?
Odpowiedz
Można wyciągnąć wszystkie te z oryginalnego pliku, a tylko overload te, które potrzebne są:
vendor/symfony/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig
W rzeczywistości problem polega na tym, że mam formularz z kolekcją, chcę, aby widżety w kolekcji używały innego motywu, który różni się od formy nadrzędnej. Nie wiedziałem, jak to zarchiwizować. – imikay
Próbowałem utworzyć niestandardową kompozycję dla niestandardowego pola, ale widżety odnoszą się do siebie nawzajem, próbowałem podążać za łańcuchem, aby nadpisać każdy z nich, ale jestem zagubiony. – imikay
czy możesz wkleić to, co masz do tej pory, i źle zobaczyć, czy mogę ci w tym pomóc – chasen
uderzę ten sam problem niedawno, jest brak dokumentacji na dostępnych zmiennych (atrybuty) podczas pracy w motywach. W końcu znalazłem moje rozwiązanie, przeszukując folder dostawcy (trochę potrwał) dla zmiennych, które znałem, aby zobaczyć, co jeszcze jest dostępne.
Najlepszym miejscem dla mnie było spojrzeć tutaj: Symfony \ Komponent \ Form \ Extension \ Rdzeń \ Type
typu bazowego, będąc FieldType zapewnia tych zmiennych poprzez buildView
$view
->set('form', $view)
->set('id', $id)
->set('name', $name)
->set('full_name', $fullName)
->set('errors', $form->getErrors())
->set('value', $form->getClientData())
->set('read_only', $form->isReadOnly())
->set('required', $form->isRequired())
->set('max_length', $form->getAttribute('max_length'))
->set('pattern', $form->getAttribute('pattern'))
->set('size', null)
->set('label', $form->getAttribute('label'))
->set('multipart', false)
->set('attr', $form->getAttribute('attr'))
->set('types', $types)
;
prototyp atrybut, który istnieje tylko w typie kolekcji, tak jak allow_add i allow_delete, zobacz CollectionType w tym samym folderze.
Po podstawowym FieldType wygląda na to, że jest to pełna lista.
CheckboxType.php: ->setAttribute('value', $options['value'])
ChoiceType.php: ->setAttribute('choice_list', $options['choice_list'])
ChoiceType.php: ->setAttribute('preferred_choices', $options['preferred_choices'])
ChoiceType.php: ->setAttribute('multiple', $options['multiple'])
ChoiceType.php: ->setAttribute('expanded', $options['expanded'])
ChoiceType.php: ->setAttribute('required', $options['required'])
ChoiceType.php: ->setAttribute('empty_value', $emptyValue)
CollectionType.php: ->setAttribute('prototype', $prototype->getForm());
CollectionType.php: ->setAttribute('allow_add', $options['allow_add'])
CollectionType.php: ->setAttribute('allow_delete', $options['allow_delete'])
DateTimeType.php: ->setAttribute('widget', $options['widget']);
DateType.php: ->setAttribute('formatter', $formatter)
DateType.php: ->setAttribute('widget', $options['widget']);
FormType.php: ->setAttribute('virtual', $options['virtual'])
MoneyType.php: ->setAttribute('currency', $options['currency'])
PasswordType.php: ->setAttribute('always_empty', $options['always_empty']);
RadioType.php: ->setAttribute('value', $options['value'])
TimeType.php: ->setAttribute('widget', $options['widget'])
TimeType.php: ->setAttribute('with_seconds', $options['with_seconds'])
Dzięki, spróbuję i zobaczę, jak mogę z nich korzystać. – imikay
W 'collectionType', jak możemy iterować każde pole wejściowe zawarte w kolekcji?Czy wiesz, jak uzyskać dostęp do elementów nadrzędnych lub części całego formularza? [Zobacz to pytanie] (http://stackoverflow.com/questions/26184990/set-the-input-labels-for-each-field-as-headers-in-symfony-collection-widget) –
Cóż, można uzyskać wszystkie dostępne zmienne w każdym bloku przez powtarzanie kontekstu:
{% block form_widget_simple %}
<ol>
{% for key, value in _context %}
<li>{{ key }}</li>
{% endfor %}
</ol>
{% spaceless %}
{% set type = type|default('text') %}
<input type="{{ type }}" {{ block('widget_attributes') }} {% if value is not empty %}value="{{ value }}" {% endif %}/>
{% endspaceless %}
{% endblock form_widget_simple %}
A jeśli chcesz używać je, a następnie będziesz musiał nadpisać klas, które faktycznie renderowania są te widgety, wystarczy spojrzeć na AbtractType :: buildView ...
Jak sugeruje @Gregoire, można użyć {{ dump(_context) }}
od wersji 1.5 (http://twig.sensiolabs.org/doc/functions/dump.html), ale należy pamiętać, że będzie to wydrukować dużą ilość informacji.
Możesz również dodać '{{dump (value)}}' w pętli, aby wyświetlić zawartość zmiennych. – Gregoire
O Boże, dziękuję bardzo. –
@Gregoire In Symfony 2.5 '{{dump (value)}}' sprawia, że cała strona staje się biała (widocznie wyciek pamięci ewidentnie) w przypadkach, gdy wartość jest obiektem (który sprawia, że zrzut jest bezużyteczny, ponieważ wtedy zwykle potrzebuję wysypisko). –
Zobacz moją odpowiedź tutaj: https://stackoverflow.com/a/41020474/5758328
Wystarczy użyć
{% dump %}
i wszystkie zmienne dostępne w szablonie będzie zrzucana do profilera
- 1. Pełna lista dyrektyw AngularJS?
- 2. Python: pełna lista modułów
- 3. Lista zdefiniowanych zmiennych w R
- 4. Java: pełna lista parametrów @SuppressWarnings (...) (w Netbeans)?
- 5. Czy istnieje lista zmiennych środowiskowych programu Visual Studio?
- 6. Backbone.js DOM pełna lista zdarzeń
- 7. Których użyć? decimal.Add() lub "+"
- 8. Adnotacje SAL, z których użyć?
- 9. Pełna lista wszystkich urządzeń z Androidem
- 10. Czy można użyć SFINAE/szablonów, aby sprawdzić, czy operator istnieje?
- 11. Twitter bootstrap pełna lista ikon z etykietą
- 12. Pełna lista definicji dla wersji Delphi
- 13. Czy istnieje pełna lista potencjalnych etykiet, które zwróci Google Vision API?
- 14. Czy istnieje pełna lista specjalnych nazw katalogów meteorytów i co one robią?
- 15. Pełna lista wartości domyślnych dla opcji JSHint?
- 16. Pełna lista "znajomych" Twittera używających python i tweepy
- 17. Pełna lista wzorców formatów daty w obj-c dla iOS
- 18. Lista funkcji abstrakcyjnych i zmiennych
- 19. Czy istnieje gdzieś pełna definicja składni skryptu aplikacji Google?
- 20. Lista wbudowanych zmiennych MSBuild
- 21. Czy istnieje lista pragmy obsługiwanych w Xcode?
- 22. lista Rozpakuj do zmiennych
- 23. Lista wszystkich zmiennych zdefiniowanych przez użytkownika w systemie
- 24. Jaka jest pełna lista prawidłowych rozszerzeń plików dla zdjęć?
- 25. Lista R ze zmiennych o nazwach zmiennych
- 26. których Google Analytics cocoapods pod użyć
- 27. Czy możesz użyć zmiennych strony Jekyll w układzie?
- 28. pełna lista mime-type <-> mapowanie rozszerzeń plików
- 29. Lista alternatyw dla funkcji, których brakuje w OpenGLES
- 30. Lista wszystkich plików w folderze - pełna ścieżka do pliku
przykro ... znaleźliście mój odpowiedź jest przydatna? – coma
Zmarnowałem również tyle czasu. –