Zend Form 2º – Populando – Editando

Beleza galera, antes de fecha o ano vamos de mais uma aula sobre Zend Form, veremos como popular nosso form para edição, e como atualizar seus dados.

Controller Post

public function addAction()
    {

    	$form = new Application_Form_Post();
    	$model = new Application_Model_Post;
    	$id = $this->_getParam('id');
    	if($this->_request->isPost()){

    		if($form->isValid($this->_request->getPost())){

    			$data = $form->getValues();
    			if($id){
    				$where = $model->getAdapter()->quoteInto('id = ?',$id);
    				$model->update($data,$where);
    			}else{
    				$model->insert($data);
    			}

    			$this->_redirect('/post');
    		}

    	}elseif($id){
    		$data = $model->busca($id);
    		if(is_array($data)){
    			$form->setAction('/post/add/id/' . $id);
    			$form->populate($data);
    		}
    	}

    	$this->view->form = $form;
    }

Model Post

public function busca($id){
		try{
			$sql =  $this->select()
						->where('id =?', $id);
			$row = $this->fetchRow($sql);

			if(null !== $row)
				return $row->toArray();

		}catch(Exception $e){
			return $e->getMessage();
		}
	}

2 thoughts on “Zend Form 2º – Populando – Editando

  1. Olá Felipe, ótimo tutorial, admiro este trabalho pois começar com ZF e realmente complicado com aquela documentação hehehe, gostaria de saber se vc tem intenção de fazer algo relacionado aos decorators? ou até mesmo com relação ao uso de jquery ou dojo, o ZF consegue tratar estas duas tecnologias internamente não é ? ( algo parecido com xajax ).

    Boa sorte continue com os tutorias até mais.

    • Hicaro Rios, os Decorators são um negócio muito chato, vou falar deles na próxima video aula, vou ver se posto nesta semana ainda. Quanto ao dojo e ao jquery o zend trabalha com eles tambem, o jquery com a lib extra ZendX_Jquery, não to muito familirializado com eles, eu uso o ainda o jquery normal, quando tiver um tempo sobrando vou dar um estuda neles.

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>