Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [symfony] konfiguracja labeli w formularzu
zwierzołak
post
Post #1





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 25.03.2008

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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.

Ten post edytował Crozin 25.11.2010, 18:13:04
Go to the top of the page
+Quote Post
zwierzołak
post
Post #3





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 25.03.2008

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Crozin
post
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Pokaż cały kod Twojego formularza - tak by było wiadome, gdzie masz tą pętlę z pierwszego postu.
Go to the top of the page
+Quote Post
Quadina
post
Post #5





Grupa: Zarejestrowani
Postów: 200
Pomógł: 38
Dołączył: 1.12.2010
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 01:43