public function guardar(Etiquetas $etiqueta) { $id = (int) $etiqueta->getEtiquetasId(); if ($id == "") { $data = array('etiquetas_nombre' => $etiqueta->getEtiquetasNombre()); $this->tableGateway->insert($data); $lastId = $this->tableGateway->adapter->getDriver()->getConnection()->getLastGeneratedValue(); return $lastId; } else { if ($this->obtenerPorId($id)) { $data = array('etiquetas_nombre' => $etiqueta->getEtiquetasNombre()); $this->tableGateway->update($data, array('etiquetas_id' => $id)); return $id; } else { echo "<pre>"; var_dump('error'); exit; throw new \Exception('El Id no existe!'); } } }
public function guardar($formData) { $db = $this->etiquetasTableGateway->adapter; $con = $db->getDriver()->getConnection(); $con->beginTransaction(); $etiqueta = new Etiquetas(); $etiqueta->exchangeArray($formData); $etiquetasDAO = new EtiquetasDAO($this->etiquetasTableGateway); try { $resExistente = $etiquetasDAO->obtenerPorNombre($etiqueta->getEtiquetasNombre()); $objetosEtiquetasDAO = new ObjetosEtiquetasDAO($this->objetosEtiquetasTableGateway); if ($resExistente->count() == 0) { //guarda la etiqueta $eti = $etiquetasDAO->guardar($etiqueta); $bjetosEtiquetas = new ObjetosEtiquetas(); $bjetosEtiquetas->setObjetosId($formData["objetos_id"]); $bjetosEtiquetas->setEtiquetasId($eti); // guarda la relacion $relacion = $objetosEtiquetasDAO->guardar($bjetosEtiquetas); } else { foreach ($resExistente as $key => $value) { $res = $value; } $relacion = $objetosEtiquetasDAO->obtenerPorRelacion($formData["objetos_id"], $res->getEtiquetasId()); if ($relacion->count() == 0) { //solo relaciona la etiqueta $bjetosEtiquetas = new ObjetosEtiquetas(); $bjetosEtiquetas->setObjetosId($formData["objetos_id"]); $bjetosEtiquetas->setEtiquetasId($res->getEtiquetasId()); $relacion = $objetosEtiquetasDAO->guardar($bjetosEtiquetas); } } $con->commit(); } catch (\Exception $e) { $con->rollback(); $eti = 0; } unset($etiquetasDAO); unset($etiqueta); return $eti; }