php - Fieldset zf2 - populate 2 entities -


i have form adding fieldset , fieldset calling another. have 1 manytoone relationship referencing id of entity. in controler have:

public function juridicaaction() {     if (!$this->zfcuserauthentication()->hasidentity()) {         return $this->redirect()->toroute('login');     }     $objectmanager = $this->getservicelocator()->get('doctrine\orm\entitymanager');     $em = $this->getentitymanager();      $pessoajuridica = new pessoajuridica();     $localizacao = new localizacao();      $form = new pjform($objectmanager);      $form->bind($pessoajuridica);       $request = $this->getrequest();     if ($request->ispost()) {         $data = array_merge_recursive(             $this->getrequest()->getpost()->toarray(),             $this->getrequest()->getfiles()->toarray()         );          $form->setdata($data);         //var_dump($data);die();         $pessoajuridica->setidpessoa($em->find("cadastro\entity\pessoa", $this->zfcuserauthentication()->getidentity()->getidpessoa()));           if ($form->isvalid()) {                  $objectmanager->persist($pessoajuridica);                 $objectmanager->flush();                  $this->flashmessenger()->addsuccessmessage('cadastro efetuado!');                 return $this->redirect()->toroute('fornecedor', array('action'=>'dadosbancarios'));         }         //else var_dump($form->getmessages());die();     }     return new viewmodel(array(         'pessoajuridica' => $pessoajuridica,         'form' => $form     )); } 

this controller persist pessoajuridica entity, localizacao not persist..the cascade persist not work myform:

class pjform extends form{      public function __construct(objectmanager $objectmanager) {     parent::__construct('pjform');     $this->setattribute('method', 'post');     $this->sethydrator(new doctrinehydrator($objectmanager));      $pessoajuridicafieldset = new pessoajuridicafieldset($objectmanager);     $pessoajuridicafieldset->setname('pessoajuridica');     $pessoajuridicafieldset->setuseasbasefieldset(true);     $this->add($pessoajuridicafieldset);      $this->add(array(         'name' => 'submit',         'attributes' => array(             'type'  => 'submit',             'value' => 'continuar',             'class' => 'btn btn-block btn-success',             'id' => 'submitbutton',         ),     )); } 

fieldset pessoajuridicafieldset:

class pessoajuridicafieldset extends fieldset implements inputfilterproviderinterface { public function __construct(objectmanager $objectmanager) {     parent::__construct('pessoajuridica');     $this->sethydrator(new doctrinehydrator($objectmanager))          ->setobject(new pessoajuridica());      $this->add(array(         'type' => 'zend\form\element\hidden',         'name' => 'id'     ));      $cnpj = new text('cnpj');        $cnpj->setlabel('cnpj')             ->setattributes(array(                 'class' => 'form-control',                 'id' =>'cnpj',             ));         $this->add($cnpj);      $nomefantasia = new text('nomefantasia');        $nomefantasia->setlabel('nome fantasia')             ->setattributes(array(                 'class' => 'form-control',                 'id' =>'nomefantasia',             ));         $this->add($nomefantasia);      $logotipo = new file('logotipo');        $logotipo->setlabel('logotipo')             ->setattributes(array(                 'class' => 'form-control',                 'id' =>'logotipo',             ));         $this->add($logotipo);      $localizacao = new localizacaofieldset($objectmanager);     $localizacao->setname('localizacao');     $localizacao->setuseasbasefieldset(true);     $this->add($localizacao); } public function getinputfilterspecification() {     return array(         'cnpj' => array(             'required' => true         ),         'nomefantasia' => array(             'required' => true         ),     ); }} 

fielset localizacao:

class localizacaofieldset extends fieldset implements inputfilterproviderinterface{ public function __construct(objectmanager $objectmanager) {     parent::__construct('localizacao');      $this->sethydrator(new doctrinehydrator($objectmanager))          ->setobject(new localizacao());       $cep = new text('cep');        $cep->setlabel('cep')             ->setattributes(array(                 'class' => 'form-control',                 'id' =>'cep',             ));         $this->add($cep);      $logradouro = new text('logradouro');        $logradouro->setlabel('logradouro')             ->setattributes(array(                 'class' => 'form-control',                 'id' =>'logradouro',             ));         $this->add($logradouro);      $numero = new text('numero');     $numero->setlabel('nĂºmero');     $numero->setattributes(array(                 'class' => 'form-control',                 'id' =>'numero'             ));         $this->add($numero);      $bairro = new text('bairro');     $bairro->setlabel('bairro');     $bairro->setattributes(array(                 'class' => 'form-control',                 'id' =>'bairro'             ));         $this->add($bairro);          $complemento = new text('complemento');     $complemento->setlabel('complemento');     $complemento->setattributes(array(                 'class' => 'form-control',                 'id' =>'complemento'             ));         $this->add($complemento);      $referencia = new text('referencia');     $referencia->setlabel('referencia');     $referencia->setattributes(array(                 'class' => 'form-control',                 'id' =>'referencia'             ));         $this->add($referencia);      $cidade = new text('cidade');     $cidade->setlabel('cidade');     $cidade->setattributes(array(                 'class' => 'form-control',                 'id' =>'cidade'             ));         $this->add($cidade);                  $this->add(array(         'name' => 'iduf',         'type' => 'doctrinemodule\form\element\objectselect',         'options' => array(             'label' => 'estado',             'object_manager' => $objectmanager,             'target_class' => 'cadastro\entity\uf',             'property' => 'uf'         ),         'attributes' => array(             'required' => true,             'class' => 'form-control'         )     )); } public function getinputfilterspecification() {     return array(          'cep' => array(              'required' => true,          ),          'logradouro' => array(              'required' => true,          ),         'numero' => array(             'required'=> true,         ),         'bairro' => array(              'required' => true,          ),          'cidade' => array(              'required' => true,          ),         'iduf' => array(             'required'=> true,         ),      );  }} 

so, probrem : persist pessoajuridica , localizacao..

i did manually , work..but if has other automatically, can post. thank you.

... $localizacao->setbairro($form->get('pessoajuridica')->get('localizacao')->get('bairro')->getvalue());         $localizacao->setcep($form->get('pessoajuridica')->get('localizacao')->get('cep')->getvalue());         $localizacao->setcidade($form->get('pessoajuridica')->get('localizacao')->get('cidade')->getvalue());         $localizacao->setcomplemento($form->get('pessoajuridica')->get('localizacao')->get('complemento')->getvalue());         $localizacao->setiduf($em->find("cadastro\entity\uf", $form->get('pessoajuridica')->get('localizacao')->get('iduf')->getvalue()));         $localizacao->setlogradouro($form->get('pessoajuridica')->get('localizacao')->get('logradouro')->getvalue());         $localizacao->setnumero($form->get('pessoajuridica')->get('localizacao')->get('numero')->getvalue());         $localizacao->setreferencia($form->get('pessoajuridica')->get('localizacao')->get('referencia')->getvalue());         //var_dump($localizacao);die();         $pessoajuridica->setidpessoa($em->find("cadastro\entity\pessoa", $this->zfcuserauthentication()->getidentity()->getidpessoa()));           if ($form->isvalid()) {                 $objectmanager->persist($localizacao);                  $pessoajuridica->setidlocalizacaocomercial($localizacao);                  $objectmanager->persist($pessoajuridica);                 $objectmanager->flush(); .... 

Comments

Popular posts from this blog

android - MPAndroidChart - How to add Annotations or images to the chart -

javascript - Add class to another page attribute using URL id - Jquery -

firefox - Where is 'webgl.osmesalib' parameter? -