public function especialidade($profissional_beleza_id) { $modelProfissionalBelezaEspecialidade = new Model_DbTable_ProfissionalBelezaEspecialidade(); $especialidades = $modelProfissionalBelezaEspecialidade->getByField("profissional_beleza_id", $profissional_beleza_id); //Zend_Debug::dump($especialidades); $dados = array(); foreach ($especialidades as $key => $especialidade) { //Zend_Debug::dump($key); die(); if ($key <= 4) { $dados[] = $especialidade->especialidade_nome; } else { $dados[] = $especialidade->especialidade_nome . '...'; break; } } return implode(', ', $dados); }
public function editarAction() { $profissional_beleza_id = $this->getRequest()->getParam('id'); if (!$profissional_beleza_id) { $this->_helper->flashMessenger->addMessage(array('danger' => 'Não foi possível pesquisar o profissional')); $this->_redirect("/salao"); } /** * Busco o profissional */ $modelProfissionalbeleza = new Model_DbTable_ProfissionalBeleza(); $profissional = $modelProfissionalbeleza->getProfissionalBeleza($profissional_beleza_id, $this->identity->salao_id); if (!$profissional) { $this->_helper->flashMessenger->addMessage(array('danger' => 'Profissional não encontrado')); $this->_redirect("/salao"); } /** * Busca as especialidades */ $modelProfissionalBelezaEspecialidade = new Model_DbTable_ProfissionalBelezaEspecialidade(); $especialidades = $modelProfissionalBelezaEspecialidade->getByField("profissional_beleza_id", $profissional_beleza_id); $array_especialidades = array(); foreach ($especialidades as $especialidade) { $array_especialidades[$especialidade->especialidade_id] = $especialidade->especialidade_id; } $profissional = $profissional->toArray(); $profissional['especialidade_id'] = $array_especialidades; /** * form de cadastro */ $formAdd = new Form_Salao_ProfissionalBelezaAdd(); $formAdd->submit->setLabel("Editar"); // a foto nao e mais obrigatoria $formAdd->profissional_beleza_avatar->setRequired(false); // remove o validator de email $formAdd->profissional_beleza_email->setValidators(array()); // populate $formAdd->populate($profissional); $this->view->form = $formAdd; if ($this->getRequest()->isPost()) { $data = $this->getRequest()->getPost(); if ($formAdd->isValid($data)) { if ($formAdd->getValue('profissional_beleza_avatar')) { $originalFilename = pathinfo($formAdd->profissional_beleza_avatar->getFileName()); $newFilename = uniqid() . '.' . $originalFilename['extension']; $formAdd->profissional_beleza_avatar->addFilter('Rename', $newFilename); } else { unset($formAdd->profissional_beleza_avatar); } $data = $formAdd->getValues(); $especialidades = $data['especialidade_id']; unset($data['especialidade_id']); try { Zend_Db_Table_Abstract::getDefaultAdapter()->beginTransaction(); $modelProfissionalBeleza = new Model_DbTable_ProfissionalBeleza(); $modelProfissionalBelezaEspecialidade = new Model_DbTable_ProfissionalBelezaEspecialidade(); $modelProfissionalBeleza->updateById($data, $profissional_beleza_id); /** * exclui todas especialidades */ $modelProfissionalBelezaEspecialidade->delete("profissional_beleza_id = {$profissional_beleza_id}"); foreach ($especialidades as $especialidade) { $dadosEpecialidade = array('profissional_beleza_id' => $profissional_beleza_id, 'salao_id' => $this->identity->salao_id, 'especialidade_id' => $especialidade); $modelProfissionalBelezaEspecialidade->insert($dadosEpecialidade); } Zend_Db_Table_Abstract::getDefaultAdapter()->commit(); /** * Message success */ $this->_helper->flashMessenger->addMessage(array('success' => 'Profissional editado com sucesso')); $this->_redirect("salao/"); } catch (Exception $ex) { $this->_helper->flashMessenger->addMessage(array('danger' => 'Houve um erro ao editar o profissional. Por favor tente mais tarde. - ' . $ex->getMessage())); $this->_redirect("salao/"); } } } }