Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [symfony] konfiguracja labeli w formularzu
Forum PHP.pl > Forum > PHP > Frameworki
zwierzołak
Witam,

Mam taki problem: w metodzie configure() formularza chcę dodać gwiazdki do labeli wszystkich pól. Robię tak:
  1. foreach( $this->getWidgetSchema()->getFields() as $field) {
  2. $field->setLabel( $field->getLabel() . ' *' );
  3. }

i nie działa(w labelach jest sama *). Jeżeli dam $field->setLabel('123'); to działa i ustawia wszystkie labele na '123' - wygląda na to, że nie działa getLabel.. Tylko dlaczego?
Crozin
Widocznie na tym etapie, etykietki nie są jeszcze wygenerowane (getLabel() zwraca NULL co jest zamieniane na pusty tekst) - pewnie jest to robione na jakimś innym etapie. Ale takie coś jak gwiazdki powinieneś raczej dodać bezpośrednio w szablonie, albo nawet z poziomu CSSa.
zwierzołak
Co masz na myśli mówiąc, że labele są generowane gdzie indziej - jak wygląda to generowanie i gdzie może być?

W widoku mam tak:
  1. echo $form['opis']->renderLabel();
- jeżeli wcześniej ustawiłem setLabel() to pojawia się tu mój label, a jeżeli nie to jakiś wygenerowany automagicznie.
Crozin
Pokaż cały kod Twojego formularza - tak by było wiadome, gdzie masz tą pętlę z pierwszego postu.
Quadina
Podczas działania funkcji configure() nie są jeszcze znane etykiety, jest to robione podczas budowania formularza. renderLabel jeżeli pole field jest puste wtedy uzupełnia domyślnym. Zatem podczas ustawiania Twoją pętlą nadpisujesz NULLe swoimi gwiazdkami, które później nie są już zamieniane na domyślne pola.

Ogólnie gwiazdki i inne tego typu rzeczy robi się już z poziomu view, a nie skryptu. Jedynym wyjątkiem jest tutaj użycie w schemacie {notnull: true}, i później generowanie formularzy przy pomocy np. doctrine:generate-admin. wtedy pola są odpowiednio pogrubione i obsługiwane jako wymagane. Generując normalny moduł korzystając z normalnego formularza musisz takową obsługę dodać sam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.