sí, yo lo hacía más cutre todavía pero podría vale. Yo esperaba que me quedasen anidados, de esta manera veo que para tratarlo luego hay 2 opciones. Recorrer ambos arrays y irlo colocando en el controlador para luego en la vista solo ir mostrando los datos o en la propia vista ir mostrando los datos de uno y otro array. Me parece más limpia la primera pero requiere recorrer 3 arrays posiblemente enormes mientras que con la segunda opción solo se recorrerían 2 pero perderíamos el significado del MVC ¿No te parece?
On 14 mar, 03:40, Javier Villanueva <javi.vil...@gmail.com> wrote: > Ok ahora creo que te entiendo.... > > Yo no soy muy experto y no se si será la mejor forma... pero cuando yo tengo > que hacer lo que creo tu intentas hacer hago dos búsquedas... La primera > para los usuarios y meto en un array el resultado, luego hago la busqueda de > las notas pasando como conditions el array... así tengo dos búsquedas > distintas con el mismo resultado, pero puedo pasar parámetros distintos y > variables a limit, order, etc... > > Quizás no sea eso tampoco lo que buscas :S > > Saludos! > > El 14 de marzo de 2011 01:08, moral3jo <moral...@gmail.com> escribió: > > > gracias javier > > me explique mal, mi problema es cuando quiero poner 2 condiciones > > distintas de 2 modelos y ambas son variables. por ejemplo algo así > > > $datos = $this->User->find('all', array('limit' => 10))->Note- > > >find('all', array('limit' => 2)); > > > osea recuperar 10 alumnos y de los 10 alumnos 2 notas. unas veces > > serán 10 y 2, otras 5 y 3,... > > Se que se puede paginar pero no me refiero a eso, sino a pasar > > parámetros desde el controlador al modelo a 2 niveles ya sea limit > > como fields, order,.... y estos no estén arraigados al modelo sino a > > la accion del controler > > > On 14 mar, 00:24, Javier Villanueva <javi.vil...@gmail.com> wrote: > > > Si lo que quieres es todo, y Usuario es hasMany Notas... solo tienes que > > > llamar a usuario. Ya te devuelve sus datos y los de sus notas. > > > > $this->User->find('all'); Es suficiente... > > > > En el siguiente ejemplo del manual puedes ver lo mismo pero para Usuario > > y > > > Comentarios... > > > > // Resultados de ejemplo de llamada a $this->Usuario->find(). > > > Array > > > ( > > > [Usuario] => Array > > > ( > > > [id] => 121 > > > [name] => Gwoo the Kungwoo > > > [created] => 2007-05-01 10:31:01 > > > ) > > > [Comentario] => Array > > > ( > > > [0] => Array > > > ( > > > [id] => 123 > > > [usuario_id] => 121 > > > [title] => On Gwoo the Kungwoo > > > [cuerpo] => The Kungwooness is not so Gwooish > > > [created] => 2006-05-01 10:31:01 > > > ) > > > [1] => Array > > > ( > > > [id] => 123 > > > [usuario_id] => 121 > > > [title] => More on Gwoo > > > [cuerpo] => But what of the ‘Nut? > > > [created] => 2006-05-01 10:41:01 > > > ) > > > ) > > > ) > > > > El 13 de marzo de 2011 18:54, moral3jo <moral...@gmail.com> escribió: > > > > > Algo así, pero así solo obtendría datos de la tabla de Note y yo > > > > quiero obtener un array de Users con sus Notas pero condicionar el > > > > número de notas. Algo así: > > > > > $variable = 1; > > > > $datos = $this->User->find('all')->Note->find('all', array('limit' => > > > > $variable)); > > > > y que vengan los datos asi: > > > > > [User] > > > > id => 1 > > > > nombre => Juan > > > > [Nota] > > > > [id] => 1 > > > > [asignatura] => Mates > > > > [nota] => 9.5 > > > > > y si pongo $variable=2 > > > > > [User] > > > > id => 1 > > > > nombre => Juan > > > > [Nota] > > > > [id] => 1 > > > > [asignatura] => Mates > > > > [nota] => 9.5 > > > > [Nota] > > > > [id] => 2 > > > > [asignatura] => Ingles > > > > [nota] => 9.3 > > > > > On 13 mar, 18:35, Javier Villanueva <javi.vil...@gmail.com> wrote: > > > > > $notes = $this->User->Note->find('all', array('limit' => $variable)); > > > > > > Algo asi?? > > > > > > Saludos. > > > > > > El 13 de marzo de 2011 17:27, moral3jo <moral...@gmail.com> > > escribió: > > > > > > > muchas gracias, la primera opción parece bueno, lo repasare cuando > > > > > > aprenda a usar Auth :P > > > > > > > Lo del limit si sabia que se podía personalizar pero querría que > > fuera > > > > > > una variable no el 5 que viene de ejemplo. > > > > > > > El limit de Usuarios si que he podido modificarlo desde el > > > > > > controlador, pero el limit de Notas desde el controlador no se como > > > > > > pasarle una variable o indicarle que unas veces quiero 5 y otras > > 100. > > > > > > No se si me explico > > > > > > > On 13 mar, 16:38, Javier Villanueva <javi.vil...@gmail.com> wrote: > > > > > > > Para la primera opción puedes guardar el diseño de cada usuario > > en su > > > > > > Tabla > > > > > > > Usuarios. Y luego mediante la variable de sesión (Componentes > > Auth y > > > > > > > Session) del usuario al loggearse extraer el diseño que tiene: > > > > > > > > $design = $this->Session->read('Auth.User.design'); > > > > > > > > En el segundo caso tienes una asociación de modelos Usuario > > "hasMany" > > > > > > > Notas... y puedes sacar desde usuario las notas de un usuario y > > > > limitar > > > > > > su > > > > > > > búsqueda a 5 resultados: > > > > > > > >http://book.cakephp.org/es/view/1043/hasMany > > > > > > > > Espero te sirva de ayuda. Saludos! > > > > > > > > El 13 de marzo de 2011 15:52, moral3jo <moral...@gmail.com> > > > > escribió: > > > > > > > > > tengo varias dudas. > > > > > > > > > ¿Cual es la mejor manera de tratar unas variables de usuario? > > Por > > > > > > > > ejemplo algo de tipo configuración. una web tiene varios > > diseños y > > > > el > > > > > > > > usuario tiene elegido el diseño 2. Esto implica disponer de > > esta > > > > > > > > variable tanto en los modelos en las vistas y posiblemente en > > los > > > > > > > > controladores. > > > > > > > > > y la otra es un poco mas extensa. > > > > > > > > Tengo 2 tablas, Usuarios y Notas. Un usuario tiene muchas > > notas. > > > > > > > > Quiero mostrar por cada Usuario las 5 notas mas altas en unas > > > > páginas > > > > > > > > y todas en otras. Me gustaria poder hacerlo en el modelo para > > no > > > > > > > > cargar la consula SQL recuperando exceso de datos que luego en > > el > > > > > > > > controllador desecharia. Seria posible recuperar los datos del > > > > usuario > > > > > > > > y las notas variables desde el controllador llamando a > > > > $this->Usuario- > > > > > > > > >find() > > > > > > > > > saludos y muchas gracias > > > > > > > > > -- > > > > > > > > Has recibido este mensaje porque estás suscrito al grupo > > > > "CakePHP-es" > > > > > > de > > > > > > > > Grupos de Google. > > > > > > > > Para publicar una entrada en este grupo, envía un correo > > > > electrónico a > > > > > > > > cakephp-es@googlegroups.com. > > > > > > > > Para anular tu suscripción a este grupo, envía un correo > > > > electrónico a > > > > > > > > cakephp-es+unsubscr...@googlegroups.com > > > > > > > > Para tener acceso a más opciones, visita el grupo en > > > > > > > >http://groups.google.com/group/cakephp-es?hl=es. > > > > > > > -- > > > > > > Has recibido este mensaje porque estás suscrito al grupo > > "CakePHP-es" > > > > de > > > > > > Grupos de Google. > > > > > > Para publicar una entrada en este grupo, envía un correo > > electrónico a > > > > > > cakephp-es@googlegroups.com. > > > > > > Para anular tu suscripción a este grupo, envía un correo > > electrónico a > > > > > > cakephp-es+unsubscr...@googlegroups.com > > > > > > Para tener acceso a más opciones, visita el grupo en > > > > > >http://groups.google.com/group/cakephp-es?hl=es. > > > > > -- > > > > Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" > > de > > > > Grupos de Google. > > > > Para publicar una entrada en este grupo, envía un correo electrónico a > > > > cakephp-es@googlegroups.com. > > > > Para anular tu suscripción a este grupo, envía un correo electrónico a > > > > cakephp-es+unsubscr...@googlegroups.com > > > > Para tener acceso a más opciones, visita el grupo en > > > >http://groups.google.com/group/cakephp-es?hl=es. > > > -- > > Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de > > Grupos de Google. > > Para publicar una entrada en este grupo, envía un correo electrónico a > > cakephp-es@googlegroups.com. > > Para anular tu suscripción a este grupo, envía un correo electrónico a > > cakephp-es+unsubscr...@googlegroups.com > > Para tener acceso a más opciones, visita el grupo en > >http://groups.google.com/group/cakephp-es?hl=es. -- Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos de Google. Para publicar una entrada en este grupo, envía un correo electrónico a cakephp-es@googlegroups.com. Para anular tu suscripción a este grupo, envía un correo electrónico a cakephp-es+unsubscr...@googlegroups.com Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/cakephp-es?hl=es.