Lo cierto es que muchas veces pienso que estoy perdiendo un poco la filosofía MVC porque en demasiadas ocasiones tengo que utlizar algún condicionante php en las vistas... quizás por que todavía soy algo novato... en cualquier caso en muchos ejemplos del manual veo como se recorren arrays en las vistas.. parece algo normal...
El 14 de marzo de 2011 08:21, moral3jo <moral...@gmail.com> escribió: > 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. > > -- 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.