function executeSavePermiso() { // borrar todo los permisos para un usuarios determinado $rolId = $this->getRequestParameter('id'); $aPermiso = $this->getRequest()->getParameterHolder()->get('rolPermisos'); $c = new Criteria(); $c->add(RolPermisoPeer::FK_ROL_ID, $rolId); RolPermisoPeer::doDelete($c); if (count($aPermiso) > 0) { // grabar todos los que vienen seleccionados // aqui se debe poder grabar haciendo un solo insert $c = new Criteria(); foreach ($aPermiso as $permisoId) { $p = new RolPermiso(); $p->setFkRolId($rolId); $p->setFkPermisoId($permisoId); $p->save(); unset($p); } } $this->getUser()->setFlash('notice', 'Los permisos para este Rol fueron actualizados correctamente.'); return $this->redirect('rol/editPermiso?id=' . $rolId); }
public function delete(PropelPDO $con = null) { if ($this->isDeleted()) { throw new PropelException("This object has already been deleted."); } if ($con === null) { $con = Propel::getConnection(RolPermisoPeer::DATABASE_NAME, Propel::CONNECTION_WRITE); } $con->beginTransaction(); try { RolPermisoPeer::doDelete($this, $con); $this->setDeleted(true); $con->commit(); } catch (PropelException $e) { $con->rollBack(); throw $e; } }