On 1 jun, 00:06, Juan Pablo Araya <[EMAIL PROTECTED]> wrote:
> Hola a todos.
>
> Tengo algo como lo siguiente:
>
> Oficinas ---- hasmany ---> idiomas_oficinas ---> belongsto --->
> Idiomas
>             ---- hasmany ---> programas_oficinas --> belogsto --->
> Programas
>
> Los idiomas y programas son los idiomas y programas que las oficinas
> quieren que sus futuros practicantes dominen.
>
> Tengo que hacer un buscador donde el usuario busque las oficinas que
> pidan idiomas y programas determinados. Se muestra la lista de idiomas
> y programas  y con un checkbox seleccionan los que quieren ver.

Hola,

Lo que tienes no es facil, pero puedes hacer en un paso si solo hay
idiomas pedido (http://groups.google.com/group/cake-php/msg/
e793267f42fa77fd)

Si creas un modelo para IdiomasOficina (añadir un PK) puedes hacer
asi:

pr ($this->Oficina->IdiomasOficina-
>findAll(array('IdiomasOficina.idioma_id' => $arrayDeIdiomaIds)));
die;

Por eso, si creas un model para los dos join tables puedes hacer algo
como asi (leer la enlace arriba)

$progsRequested = array(1,2,3); // del formulario
$langsRequested = array(1,2,3); // del formulario
if ($progsRequested) {
$extraLangs = $this->Oficina->IdiomasOficina->Idioma->ProgramasIdioma-
>displayId = 'idioma_id';
$this->Oficina->IdiomasOficina->Idioma->ProgramasIdioma-
>genearateList(array('ProgramasIdioma' => $progsRequested));
$langsRequested = am($langsRequested, $extraLangs);
}
$IOArray = $this->Oficina->IdiomasOficina-
>findAll(array('IdiomasOficina.idioma_id' => $extraLangs));
//pr ($IOArray);
...

NOTA

La estructura que tienes significa que si un oficina tiene un
association con un idioma que forma parte de un programa, pero NO usan/
quieren la program - van a ser listado. Por ejemplo si cakePHP esta
listado con php/js, y haces una busca para cake - tienes todos los
oficinas que tienen php o js o ambos - pude ser que ninguno de ellos
quieren cakePHP.

Otro hilo que puede ser útil:
http://groups.google.com/group/cake-php/browse_frm/thread/8cbf01f7a9acda57/9e84f7aacbf3cd85

saludos,

AD


--~--~---------~--~----~------------~-------~--~----~
Has recibido este mensaje porque estás suscrito a Grupo "CakePHP-es" de Grupos 
de Google.
 Si quieres publicar en este grupo, envía un mensaje de correo 
electrónico a [email protected]
 Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED]
 Para obtener más opciones, visita este grupo en 
http://groups.google.com/group/CakePHP-es?hl=es.

-~----------~----~----~----~------~----~------~--~---

Responder a