symfony - Pre-populating form values in Symfony2 / Twig -
im new symfony2 / twig , need render form pre-saved values.
i can form load / save data cant show pre-saved values. missing?
here controller code:
/** * @route("/build/{id}") * @template() */ public function buildaction($id) { $request = $this->getrequest(); $em = $this->getdoctrine()->getentitymanager(); $repo = $em->getrepository('imaginenewsletterbundle:section'); $section = $repo->find($id); $newsletter = $section->getnewsletter(); $globalmag = $newsletter->getmagazine(); //$globalmag = unserialize($globalmag[0]); $builder = $this->get('newsletter.builders')->getbuilder($section->getbuilder()); $builder->setsearchurl($this->generateurl('imagine_newsletter_section_search', array('builder' => $section->getbuilder()))); $form = $this->createform($builder->getsearchformbuilder()); $prevarticles = $section->getarticles(); // $form->bind($prevarticles); return $this->render('imaginenewsletterbundle:section:'.$builder->gettemplate() , array('prevarticles' => $prevarticles,'builder' => $builder, 'form' => $form->createview(), 'section' => $section, 'newsletter' => $newsletter, 'globalmag' => $globalmag)); } here twig/form code:
<form id="advert" action="{{ addaticle }}" method="post" {{ form_enctype(form) }} class="form-stacked"> <div class="form_element"> {{ form_label(form.toplogoadvert) }} {{ form_errors(form.toplogoadvert) }} {{ form_widget(form.toplogoadvert) }} </div> <div class="form_element"> {{ form_label(form.toplogoalt) }} {{ form_errors(form.toplogoalt) }} {{ form_widget(form.toplogoalt) }} </div> <div class="form_element"> {{ form_label(form.toplogolink) }} {{ form_errors(form.toplogolink) }} {{ form_widget(form.toplogolink) }} </div> <input type="hidden" name="section" value="{{ section.id }}" /> {{ form_widget(form) }} <div class="well"> <button type="submit" class="btn primary">save</button> <button id="reset" type="reset" class="btn">reset</button> </div> {{ form_rest(form) }} </form>
you need bind form request, populate form data user entered. have updated code.
$request = $this->getrequest(); $em = $this->getdoctrine()->getentitymanager(); $repo = $em->getrepository('imaginenewsletterbundle:section'); $section = $repo->find($id); $builder = $this->get('newsletter.builders')->getbuilder($section->getbuilder()); $builder->setsearchurl($this->generateurl('imagine_newsletter_section_search', array('builder' => $section->getbuilder()))); $form = $this->createform($builder->getsearchformbuilder(), $section); if ($request->ismethod('post')) { $form->bind($request); } return $this->render('imaginenewsletterbundle:section:'.$builder->gettemplate() , array('builder' => $builder, 'form' => $form->createview(), 'section' => $section)); you need ensure when form submitted user goes action output form. suspect have separate action process form.
Comments
Post a Comment