protected function saveUsuario($usuario) { $usuario->save(); // Update many-to-many for "grupos" $c = new Criteria(); $c->add(UsuarioGrupoPeer::ID_USUARIO, $usuario->getPrimaryKey()); UsuarioGrupoPeer::doDelete($c); $ids = $this->getRequestParameter('associated_grupos'); if (is_array($ids)) { foreach ($ids as $id) { $UsuarioGrupo = new UsuarioGrupo(); $UsuarioGrupo->setIdUsuario($usuario->getPrimaryKey()); $UsuarioGrupo->setIdGrupo($id); $UsuarioGrupo->save(); } } }
/** * Removes this object from datastore and sets delete attribute. * * @param PropelPDO $con * @return void * @throws PropelException * @see BaseObject::setDeleted() * @see BaseObject::isDeleted() */ public function delete(PropelPDO $con = null) { foreach (sfMixer::getCallables('BaseUsuarioGrupo:delete:pre') as $callable) { $ret = call_user_func($callable, $this, $con); if ($ret) { return; } } if ($this->isDeleted()) { throw new PropelException("This object has already been deleted."); } if ($con === null) { $con = Propel::getConnection(UsuarioGrupoPeer::DATABASE_NAME, Propel::CONNECTION_WRITE); } $con->beginTransaction(); try { UsuarioGrupoPeer::doDelete($this, $con); $this->setDeleted(true); $con->commit(); } catch (PropelException $e) { $con->rollBack(); throw $e; } foreach (sfMixer::getCallables('BaseUsuarioGrupo:delete:post') as $callable) { call_user_func($callable, $this, $con); } }