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(); } } }
/** * Operaciones de carga y busqueda de los grupos a los que pertenece el usuario * Guarda un grupo o un array de grupos en el array de grupos del usuario y los guarda en la BD * */ public function anadirGrupo($grupo_s, $cargarArrayGrupo = true) { if (!is_array($grupo_s)) { $mis_grupos = array($grupo_s); } else { $mis_grupos = $grupo_s; } for ($i = 0; $i < sizeof($mis_grupos); $i++) { if (!$this->_estaGrupo($mis_grupos[$i])) { if ($cargarArrayGrupo) { $this->_anadirGrupo($mis_grupos[$i], false); } $migrupoUsuario = new UsuarioGrupo(); $migrupoUsuario->setIdGrupo($mis_grupos[$i]); $migrupoUsuario->setUsuario($this); $migrupoUsuario->save(); } } }