/** * 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)); }
/** * 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)); }