function executeEditLocacion() { $c = new Criteria(); $c->add(RelEstablecimientoLocacionPeer::FK_ESTABLECIMIENTO_ID, $this->getRequestParameter('id')); // estas son las locaciones del establecimiento actual $establecimientoLocaciones = RelEstablecimientoLocacionPeer::doSelectJoinLocacion($c); $optionsEstablecimientoLocaciones = array(); foreach ($establecimientoLocaciones as $establecimientoLocacion) { $optionsEstablecimientoLocaciones[$establecimientoLocacion->getFkLocacionId()] = $establecimientoLocacion->getLocacion()->getNombre(); } // estos son todas las locaciones existentes $todasLasLocaciones = array(); $locaciones = LocacionPeer::doSelect(new Criteria()); foreach ($locaciones as $locacion) { $todasLasLocaciones[$locacion->getId()] = $locacion->getNombre(); } // estos son las locaciones existentes menos las del establecimiento $this->optionsLocaciones = array_diff_key($todasLasLocaciones, $optionsEstablecimientoLocaciones); $this->establecimiento = EstablecimientoPeer::retrieveByPK($this->getRequestParameter('id')); $this->optionsEstablecimientoLocaciones = $optionsEstablecimientoLocaciones; }