Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SF2][Symfony][Symfony2]Manipulacja polami formularza w zależności od akcji
daniel1302
post
Post #1





Grupa: Zarejestrowani
Postów: 602
Pomógł: 30
Dołączył: 1.08.2007
Skąd: Nowy Sącz

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


Witam, zacząłem uczyć się Symfony 2. Mam taki problem:
Mam formularz generowany przez klasę UserType:

W Klasie UserType posiadam generowane 3 kontrolki:
  1. $builder
  2. ->add('name', 'text', array(
  3. 'label' => 'Imię'
  4. ))
  5. ->add('mail', 'text', array(
  6. 'label' => 'Adres email'
  7. ))
  8. ->add('password', 'text', array(
  9. 'label' => 'Hasło'
  10. ));



I teraz wszystko ok, formularz przy akcji tworzenia użytkownika generuję sobię tak:

  1. $form = $this->createForm(new UserType(), $entity, array(
  2. 'action' => $this->generateUrl('user_create'),
  3. 'method' => 'POST',
  4. ));
  5.  
  6. $form->add('submit', 'submit', array('label' => 'Create'));
  7.  
  8. return $form;




I wszystko jest ok.
A tutaj mam problem bo chciałbym zrobić edycję użytkownika i nie pozwolić użytkownikowi edytować raz wpisanego imienia. Puki co tak generuję formularz:
  1. $form = $this->createForm(new UserType(), $entity, array(
  2. 'action' => $this->generateUrl('user_update', array('id' => $entity->getUserId())),
  3. 'method' => 'PUT',
  4. ));
  5.  
  6. $form->add('submit', 'submit', array('label' => 'Edytuj użytkownika'));
  7.  
  8. return $form;


Czy prościej utworzyć nowy formularz pod tą samą Encję Doctrina, czy jest jakiś inny sposób? Mam czas i uczę się frameworka więc zależy mi na tym, aby rozwiązanie było eleganckie, ponieważ chcę sie go dobrze nauczyć.


Pozdrawiam.

Ten post edytował daniel1302 18.03.2015, 15:34:05
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Forti
post
Post #2





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


w bazie trzymasz tylko tekst. Pobierasz ów tekst w kontroller / jakaś sobie custom serwis, i wrzucasz do widoku

  1. public function indexAction()
  2. {
  3. $entities = $this->getDoctrine()->getRepository('FortiCoreBundle:Article')->findBy(array(), array('created' => 'DESC'));
  4.  
  5. $this->breadcrumbs(array(array('Artykuły')));
  6.  
  7. return $this->render('FortiAdminBundle:Article:index.html.twig', array(
  8. 'entities' => $entities
  9. ));
  10. }


a w widoku po prostu:

  1. <head>
  2. </head>
  3. <body>
  4. <ul>
  5. {% for entity in entities %}
  6. <li>{{ entity.content }}</li
  7. {% endfor %}
  8. </ul>
  9. </body
  10. </html>


I to tyle z podstawowego użycia symfony (IMG:style_emoticons/default/wink.gif)
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: 14.10.2025 - 22:32