trying update entity, unfortunately didnt use doctrines generate crud feature (have change stuff didnt write). getting data form, won't save changes (also, doesn't create new entity 1 might suspect). when click 'save', return page have form edit entity. checked if method post, is.
 if ($form->get('save')->isclicked()) {   doesn't seem anything, how can be?
here's rest of action:
  /**      * updates.      *      * @route("/offerweekchange/{offerid}", name="offerweekchange")      * @template("")      */     public function offerweekchangeaction(request $request, $offerid)     {         $request = $this->get('request');         if ($offerid) {             $em = $this->getdoctrine()->getmanager();             $entity = $em->getrepository('alexanderbuerkleshopbundle:promotion')->findoneby(array('id' => $offerid));              $form = $this->createform(new offerweekchangetype(), $entity);            # \doctrine\common\util\debug::dump($request->getmethod());             if ($form->get('save')->isclicked()) {                 if ($request->getmethod() == 'post') {                      $form->bind($request);                     if ($form->isvalid()) {                         $em->flush();                         return $this->redirect($this->generateurl('offerweeklist'));                         }                     }                 }              return $this->render('alexanderbuerkleshopbundle:offerweeklist:offerweekchange.html.twig',                 array('form' => $form->createview(), 'offerid' => $offerid, 'entity' => $entity));          }     }   any appreciated.
first, here working sample of code:
public function offerweekchangeaction(request $request, $offerid)     {         if ($offerid) {             $em = $this->getdoctrine()->getmanager();             $entity = $em->getrepository('alexanderbuerkleshopbundle:promotion')->findoneby(array('id' => $offerid));              $form = $this->createform(new offerweekchangetype(), $entity);              $form->handlerequest($request);             # \doctrine\common\util\debug::dump($request->getmethod());             if ($form->isvalid()) {                $em->persist($entity);                $em->flush();                return $this->redirect($this->generateurl('offerweeklist'));             }             return $this->render('alexanderbuerkleshopbundle:offerweeklist:offerweekchange.html.twig',                 array('form' => $form->createview(), 'offerid' => $offerid, 'entity' => $entity));          }     }   secondly, have several mistakes here, let's analyse them 1 one:
1:
if ($offerid) {   your code nothing on else branch.
2:
$request = $this->get('request');   you have request parameter injected action. line redundant.
3:
$form->bind($request);   this deprecated since 2.3. use $form->handlerequest($request) instead.
4:
$em->flush();   you flushing entity manager, nothing persisted, nothing happen. have persist entity first $em->persist($entity)
5:
if ($request->getmethod() == 'post') {   the method $form->isvalid() checks also, checking post redundant.
that's it. hope helped.
Comments
Post a Comment