Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SF2][Symfony] Rozszerzony Form Type, Select zależny od drugiego selecta.
basso
post
Post #1





Grupa: Zarejestrowani
Postów: 155
Pomógł: 1
Dołączył: 12.12.2010

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


Witam,
już wymiękam... no nie mogę tego nigdzie znaleźć, co chcę zrobić .

Mam formularz w którym są jakieś tam pola i w nim są dwa wyjątkowe: categoria i podkategoria. Są one połączone z innymi dwoma tabelami. Teraz chcę zrobić tak, że jak wybieram najpierw kategorię, to przeładowuje mi się strona (ewentulanie asynchronicznie ajax) i ładuje dla tej wybranej kategorii odpowiedniego selecta z podkategoriami. Chodzi o to, że dane kategorie są w odpowiednich kategoriach i nie mogą wybrać byle jaką podkategorię .

Próbowałem tego: http://symfony.com/doc/current/cookbook/fo...dification.html
Ale nie widzę tutaj możliwości wrzucenia akcji onchage, ani przekazania argumentu do tych listenerów, bo muszę odpowiednie ID przekazać kategorii, by na postawie tego id zaciągnać odpowiednie kategorie.

Czy może ktoś budował taki formularz albo taki mechanizm i mógłby pomóc.


Ogólnie jak wywołuje jakiego kolwiek listenera czy to w formie:
  1. $builder->addEventListener(FormEvents::PRE_SET_DATA, function(FormEvent $event){
  2. // ... add a choice list of friends of the current application user
  3. });


czy w to formie

  1. $factory = $builder->getFormFactory();
  2.  
  3. $builder->addEventListener(
  4. FormEvents::PRE_SET_DATA,
  5. function(FormEvent $event) use($user, $factory){
  6. $form = $event->getForm();
  7.  
  8. $formOptions = array(
  9. 'class' => 'Acme\DemoBundle\Entity\User',
  10. 'multiple' => false,
  11. 'expanded' => false,
  12. 'property' => 'fullName',
  13. 'query_builder' => function(EntityRepository $er) use ($user) {
  14. // build a custom query, or call a method on your repository (even better!)
  15. },
  16. );
  17.  
  18. // create the field, this is similar the $builder->add()
  19. // field name, field type, data, options
  20. $form->add($factory->createNamed('friend', 'entity', null, $formOptions));
  21. }
  22. );



Zawsze mam komunikat jakby nie działał ten lister jakby go nie było:
  1. FatalErrorException: Error: Class 'Backend\CmsBundle\Form\FormEvents' not found in C:\wamp\www\rw\src\Backend\CmsBundle\Form\PagesType.php line 30
  2.  


Ten post edytował basso 8.05.2013, 14:57:17
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
basso
post
Post #2





Grupa: Zarejestrowani
Postów: 155
Pomógł: 1
Dołączył: 12.12.2010

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


Witam,
"Przesyłanie obiektu $request jako atrybut html do dość ciekawe rozwiązanie."
Nie jako atrubuty html tylko jako argumentu Form TYpe. I ten request jest tam przekazywany i jest wszystko git, tylko nie mogę z niego wydrzeć pól.

Pytanie mam, bo w kontrolerze/akcji dzieje mi się to samo.
1. Jak w akcji wyświetlić wysłany formularz

Robie tak : print_r($request->request);
Wyświetla mi się obiekt request z wszystkimi polami...


  1. Symfony\Component\HttpFoundation\ParameterBag Object ( [parameters:protected] => Array ( [backend_cmsbundle_pagestype] => Array ( [title] => sdf [lead] => fsda [description] => fsd [showDate] => Array ( [date] => Array ( [month] => 1 [day] => 1 [year] => 2008 ) [time] => Array ( [hour] => 0 [minute] => 0 ) ) [createdAt] => Array ( [date] => Array ( [month] => 1 [day] => 1 [year] => 2008 ) [time] => Array ( [hour] => 0 [minute] => 0 ) ) [slug] => [status] => 1 [category] => 2 [gallery] => Array ( [0] => 1 ) [_token] => a97265043ce27df850327959bbe3d7404d4d5f6c ) ) )


Ale jak biorę pojedyńczą wartość to:
  1. class PagesController extends Controller
  2. {
  3. public function createAction(Request $request)
  4. {
  5. print_r($request->request->get("lead");


Dziwne to nie da rady, biała karta, null po prostu ;/ W sumie ta sama sytuacja co w FormType... no ale, żeby w kontrolerze nie można było odebrać requesta i go pojedyńczo wyświetlić no to mi się nie chce wierzyć. Chyba coś źle robię ;/

Ten post edytował basso 13.05.2013, 11:26:42
Go to the top of the page
+Quote Post

Posty w temacie


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: 6.10.2025 - 22:19