Пример #1
0
 /**
  * Cria ou edita um post
  * @return void
  */
 public function saveAction()
 {
     $translator = $this->getServiceLocator()->get('translator');
     $cache = $this->getServiceLocator()->get('Cache');
     $translator->setCache($cache);
     \Zend\Validator\AbstractValidator::setDefaultTranslator($translator);
     $form = new PostForm();
     $tableGateway = $this->getTableGateway();
     $request = $this->getRequest();
     /* se a requisição é post os dados foram enviados via formulário*/
     if ($request->isPost()) {
         $post = new PostModel();
         /* configura a validação do formulário com os filtros
            e validators da entidade*/
         $form->setInputFilter($post->getInputFilter());
         /* preenche o formulário com os dados que o usuário digitou na tela*/
         $form->setData($request->getPost());
         /* faz a validação do formulário*/
         if ($form->isValid()) {
             /* pega os dados validados e filtrados */
             $data = $form->getData();
             /* armazena a data de inclusão do post*/
             $data['post_date'] = date('Y-m-d H:i:s');
             /* preenche os dados do objeto Post com os dados do formulário*/
             $post->exchangeArray($data);
             /* salva o novo post*/
             $tableGateway->save($post);
             /* redireciona para a página inicial que mostra todos os posts*/
             return $this->redirect()->toUrl('/post');
         }
     }
     /* essa é a forma de recuperar um parâmetro vindo da url como:
            http://iniciando-zf2.dev/post/save/1
        */
     $id = (int) $this->params()->fromRoute('id', 0);
     if ($id > 0) {
         //é uma atualização
         /* busca a entidade no banco de dados*/
         $post = $tableGateway->get($id);
         /* preenche o formulário com os  dados do banco de dados*/
         $form->bind($post);
         // $form->getElement('titulo')->setValue($post->title);
         /* muda o texto do botão submit*/
         $form->get('submit')->setAttribute('value', 'Edit');
     }
     return new ViewModel(array('form' => $form));
 }
Пример #2
0
 /**
  * Cria ou edita um post
  * @return void
  */
 public function saveAction()
 {
     //         $translator = $this->getServiceLocator()->get('translator');
     $translator = $this->getService('translator');
     //         $cache = $this->getService('Cache');
     //         $translator->getCache($cache);
     \Zend\Validator\AbstractValidator::setDefaultTranslator($translator);
     $form = new PostForm();
     $request = $this->getRequest();
     if ($request->isPost()) {
         $post = new Post();
         $form->setInputFilter($post->getInputFilter());
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $data = $form->getData();
             unset($data['submit']);
             $data['post_date'] = date('Y-m-d H:i:s');
             $post->setData($data);
             $saved = $this->getTable('Application\\Model\\Post')->save($post);
             return $this->redirect()->toUrl('/');
         }
     }
     $id = (int) $this->params()->fromRoute('id', 0);
     if ($id > 0) {
         $post = $this->getTable('Application\\Model\\Post')->get($id);
         $form->bind($post);
         $form->get('submit')->setAttribute('value', 'Edit');
     }
     return new ViewModel(array('form' => $form));
 }
 /**
  * Cria ou edita um post
  * @return void
  */
 public function saveAction()
 {
     $form = new PostForm();
     $tableGateway = $this->getTableGateway();
     $request = $this->getRequest();
     if ($request->isPost()) {
         $post = new PostModel();
         $form->setInputFilter($post->getInputFilter());
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $data = $form->getData();
             $data['post_date'] = date('Y-m-d H:i:s');
             $post->exchangeArray($data);
             $tableGateway->save($post);
             return $this->redirect()->toUrl('/post');
         }
     }
     $id = (int) $this->params()->fromRoute('id', 0);
     if ($id > 0) {
         $post = $tableGateway->get($id);
         $form->bind($post);
         $form->get('submit')->setAttribute('value', 'Edit');
     }
     return new ViewModel(array('form' => $form));
 }