Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SF][SF3] Id formularza i kontrolek
Forum PHP.pl > Forum > PHP > Frameworki
nospor
Hejka, tworze sobie klase do forma, ktory nie bedzie korzystal z zadnej encji, tylko bedzie mial pola zdefiniowane przeze mnie
  1. class JsonType extends AbstractType
  2. {
  3. protected $textAreaOptions = [
  4. 'label' => false,
  5. 'attr' => [
  6. 'rows' => 8,
  7. ]
  8. ];
  9.  
  10. public function buildForm(FormBuilderInterface $builder, array $options)
  11. {
  12. $builder
  13. ->add('source', TextareaType::class, $this->textAreaOptions)
  14. ->add('destination', TextareaType::class, $this->textAreaOptions);
  15. }
  16. }


oraz w kontrolerze:
  1. $form = $this->createForm(jsonType::class,[], ['attr' => ['id' => 'json_decode']]);

Kod jaki mi to generuje to:
  1. <form class="form-horizontal" id="json_decode" method="post" name="json">
  2. <div id="json"> <div class="form-group"><div class="col-sm-12"><textarea class="form-control" rows="8" required="required" name="json[source]" id="json_source"></textarea></div></div> <div class="form-group"><div class="col-sm-12"><textarea class="form-control" rows="8" required="required" name="json[destination]" id="json_destination"></textarea></div></div><input type="hidden" value="wXUTKqW3pb4wdOF88k2d-S0pn1sw0M0dxvdBa44CsGc" class="form-control" name="json[_token]" id="json__token"></div>
  3. </form>

O ile id forma sie zgadza czyli json_decode to niestety juz id pol nie:id="json_source"
a chcialbym: id="json_decode_source"

Idzie to jakos odgornie ustawic? Googlam i szperam i marnie.
kpt_lucek
Nie wiem czy dobrze zrozumiałem, ale z opisu podanego przez Ciebie wynika, że chcesz aby ID elementu formularza w HTML zawierał inny prefix prawda?

W przypadku SF2/3 ID danego elementu jest budowane na zasadzie

FORM_ELEMENT, więc zakładając, że Twój form nazywa się json a element source wynikiem będzie json_source.


Aby uzyskać efekt który chcesz powinieneś dodać publiczną metodę getName

  1. public function getName()
  2. {
  3. return 'json_decode';
  4. }


I powinno zabanglać smile.gif
nospor
Niestety dodanie tej metody do klasy JsonType nie wplynelo w zaden sposob na ID inputow sad.gif
kpt_lucek
  1. $form = $this->get('form.factory')->createNamedBuilder('json_decode', JsonType::class, [])->getForm();


smile.gif
nospor
Podziekował ładnie smile.gif
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.