Wpis z mikrobloga

#php #symfony2 #symfony #poczatkujacy

Chce miec labele w formularzach ustawiane dynamicznie, na razie mam cos takiego

->add('description', 'text', array(
'label' => Model::getLabel('description')
))

wszystko fajnie ale nie chce dodawac tego przy kazdym polu w kazdym formularzu. Mozna jakos, np uzywajac dziedziczenia iterowac po polach formularza i ustawiac ten label? Cos takiego:

foreach ($fields as $field) {
$field->setLabel(Model::getLabel($field->getName()));
}

Tylko kompletnie nie wiem jak iterowac po polach formularza i gdzie mialby byc ten kod zeby nie powtarzac tego w kazdym formularzu.

Czy moze zupelnie jakos inaczej sie to robi?
  • 6
@gajowy_marucha: to sie nazywa translator
robisz tak:
->add('description', 'text', array(
'label' => 'form.jakisform.description''
))

teraz tworzysz folder translations w app/Resources i do folderu translations wrzucasz plik o nazwie messages.pl.yml
i w pierwszej linijce dajesz:

form.jakisform.description: Opis
Oczywiście powinieneś zagnieżdzać translacje w tym pliku (tzn form, enter itd)