php - the value for my new input field is not saved -
i add new field 'pokemon' (text field) entity 'user' that, added property in class without problem (and getter/setters)
/** @orm\column(type="string") */ protected $firstname; /** @orm\column(type="string") */ protected $lastname; /** @orm\column(type="string") */ protected $pokemon;
then, user add form, added pokemon part :
class participantform extends form { public function __construct($name = null) { parent::__construct('user'); $this->setattribute('class', 'form-horizontal'); $this->add([ 'name' => 'id', 'type' => 'hidden', ]); $this->add([ 'name' => 'firstname', 'type' => 'text', 'options' => [ 'label' => 'first name', ], ]); $this->add([ 'name' => 'lastname', 'type' => 'text', 'options' => [ 'label' => 'last name', ], ]); $this->add([ 'name' => 'pokemon', 'type' => 'text', 'options' => [ 'label' => 'pokemon', ], ]);
then in form.pthml, add code :
<div class="form-group"> <label class="col-sm-2 control-label"><?=$this->formlabel($form->get('firstname'))?></label> <div class="col-sm-10"> <?=$this->formelement($form->get('firstname'))?> <?=$this->formelementerrors($form->get('firstname'))?> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label"><?=$this->formlabel($form->get('lastname'))?></label> <div class="col-sm-10"> <?=$this->formelement($form->get('lastname'))?> <?=$this->formelementerrors($form->get('lastname'))?> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label"><?=$this->formlabel($form->get('pokemon'))?></label> <div class="col-sm-10"> <?=$this->formelement($form->get('pokemon'))?> <?=$this->formelementerrors($form->get('pokemon'))?> </div> </div>
in controller, didn't modify , can modify other value of form without problem. and of course, ran update --force update database
i don't know (or see) mistake if has idea lead investigation futher. don't have anymore idea
**edit ** here usercontroller code save data :
public function userformaction() { /** @var \zend\form\form $form */ $form = $this->formelementmanager->get('user_form'); $id = (int) $this->params()->fromroute('id', 0); /** @var \application\entity\user $user */ if (0 !== $id) { try { $user = $this->entitymanager->getrepository('application\entity\user')->find($id); $form->bind($user); } catch (\exception $e) { return $this->redirect()->toroute('user/list'); } } /** @var request $request */ $request = $this->getrequest(); if (!$request->ispost()) { return ['form' => $form]; } $form->setdata($request->getpost()); if (!$form->isvalid()) { return ['form' => $form]; }else{ $user = $form->getdata(); $this->entitymanager->persist($user); $this->entitymanager->flush(); return $this->redirect()->toroute('user/list'); } }
edit setters in protected instead of public.. problem fixed, knew stupid
Comments
Post a Comment