Re: Como llamo una metodo de AppController desde un modelo
El 28/01/2008, a las 21:48, Arantxa Grajal escribió: Después de darle muchas vueltas, es la mejor solución que encontré. Vale que el MVC es maravilloso y hay que intentar seguir lo máximo esa separación de conceptos, pero nunca debemos olvidarnos de divide y vencerás, reutilización de componentes, y todo ese rollo que nos soltaron en la facultad. Una solución más MVC podría ser En tu AppModel creas una variable $defaultUser y un método setDefaultUser($user) En tu AppController-beforeFilter() lees el usuario de la sesión y se lo pasas al modelo con el setDefaultUser($user) que acabas de crear. De este modo ahora tienes en todos los modelos una propiedad Model::defaultUser a la que puedes recurrir cuando necesites saber el usuario de la sesión. Aparte, en los métodos que lo requieran siempre puedes pasar un parámetro opcional user por si necesitas usarlo alguna vez con un usuario que no sea el de la sesión. -- Fran Iglesias [EMAIL PROTECTED] --~--~-~--~~~---~--~~ 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 CakePHP-es@googlegroups.com 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. -~--~~~~--~~--~--~---
Re: Como llamo una metodo de AppController desde un modelo
Me parece bien. Probaré a implementarlo así. Aunque mi solución sigue pareciéndome válida pues CakeSession no es una clase de M o C, es general y en cuanto a llamadas y tiempos de ejecución, creo que sigue siendo más rápida... te cuento gracias por tu aportación. El día 29/01/08, Fran Iglesias [EMAIL PROTECTED] escribió: El 28/01/2008, a las 21:48, Arantxa Grajal escribió: Después de darle muchas vueltas, es la mejor solución que encontré. Vale que el MVC es maravilloso y hay que intentar seguir lo máximo esa separación de conceptos, pero nunca debemos olvidarnos de divide y vencerás, reutilización de componentes, y todo ese rollo que nos soltaron en la facultad. Una solución más MVC podría ser En tu AppModel creas una variable $defaultUser y un método setDefaultUser($user) En tu AppController-beforeFilter() lees el usuario de la sesión y se lo pasas al modelo con el setDefaultUser($user) que acabas de crear. De este modo ahora tienes en todos los modelos una propiedad Model::defaultUser a la que puedes recurrir cuando necesites saber el usuario de la sesión. Aparte, en los métodos que lo requieran siempre puedes pasar un parámetro opcional user por si necesitas usarlo alguna vez con un usuario que no sea el de la sesión. -- Fran Iglesias [EMAIL PROTECTED] -- Arantxa Grajal [EMAIL PROTECTED] Unidad de Producción de Grandes Sistemas Parque Tecnológico de Andalucía C/María Curie 9-11, 29590 Campanillas (Málaga), España http://www.ingenia.es La información transmitida en este mensaje está dirigida solamente a las personas o entidades a las que figuran en el encabezamiento y puede contener información confidencial, por lo que si usted lo recibiera por error, por favor destrúyalo sin copiarlo, usarlo ni distribuirlo, comunicándolo inmediatamente al emisor del mensaje. The information transmitted in this message is only addressed to the perons or institutions that appear in the heading and may contain confidential information. If you receive it by error, please, destroy it without copying, using or distributing it, and communicate it immediately to the message sender. El medio ambiente y nuestros bosques agradecen su colaboración para ayudarnos a ahorrar papel, por eso no me imprima si no es imprescindible. --~--~-~--~~~---~--~~ 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 CakePHP-es@googlegroups.com 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. -~--~~~~--~~--~--~---
Re: Como llamo una metodo de AppController desde un modelo
Fran: Le veo un problen 2008/1/29 Fran Iglesias [EMAIL PROTECTED]: El 28/01/2008, a las 21:48, Arantxa Grajal escribió: En tu AppController-beforeFilter() lees el usuario de la sesión y se lo pasas al modelo con el setDefaultUser($user) que acabas de crear. Lo que no veo muy claro es como saber a que modelo asignarsela, ya que a priori tu no sabes los modelos que vas a utilizar. Una solución sería asignarla a todos los modelos que son usados por el controller, pero de repente genera una sobrecarga innecesaria. Con relación a la discusión principal creo que lo mejor es que los modelos reciban todos los parámetros necesarios de modo de poder ejecutar su funcionalidad independientemente del contexto en que se encuentres. De ese modo se hace más facil el testeo de tus modelos, ya que para su funcionamiento no dependen de controladores, componentes, bootstrap, etc. Son simples clases PHP. Saludos, -- Pablo Viojo [EMAIL PROTECTED] http://pviojo.net --~--~-~--~~~---~--~~ 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 CakePHP-es@googlegroups.com 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. -~--~~~~--~~--~--~---
Re: Como llamo una metodo de AppController desde un modelo
Pues si te quieres poner rudo puedes pasar como el controlador pasando como parametro en la funcion del modelo que deseas usar la funcionalidad del controlador $this (la referencia al objeto controlador). Como ya te han comentado no es recomendable en absoluto hacer algo asi, pero eso es la respuesta a tu pregunta. ¿Efectos colaterales? luego nos cuentas... On 25 ene, 11:14, Kurt [EMAIL PROTECTED] wrote: Hola, Quiero llamar un metodo del AppController desde un modelo. Me explico yo dentro de un modelo tengo una variable donde guardo el usuario que este en ese momento logueado para uqe al hacer una consulta sin yo tener que enviarle el usuario el automaticamente sepa el usuario de sesion. Yo tengo un metodo que hace eso en AppController, como hago yo referencia a ese metodo desde un modelo? Quizas esto no sea la mejor manera de trabajar pero eso me soluciona otras cosas cosas, se puede hacer sin tener que instanciar el conotrolador osea solamente haceindo un llamdo asi $this - NoseQue - usuarioSesion(); osea algo asi. --~--~-~--~~~---~--~~ 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 CakePHP-es@googlegroups.com 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. -~--~~~~--~~--~--~---
Re: Como llamo una metodo de AppController desde un modelo
Hola, yo tenía la misma duda que tu, la solución que tome fue crear en el bootstrap una función que me lee la variable de session del usuario y me devuelve los datos del usuario. me queda algo así function getUserSession () { $vsession=new CakeSession; $datos=$vsession-read(Configure::read('Session.cookie')); return $datos; } Espero que te sirva. Un saludo El día 26/01/08, Joaquin Windmüller [EMAIL PROTECTED] escribió: No se hay acceso al controller desde el modelo. Pasa desde el controlador al modelo los valores como parámetros. 2008/1/26 Kurt [EMAIL PROTECTED]: Si pero yo no quiero llamar un metodo del controlador de ese modelo desde el modelo. Quiero llamar un metodo creado en AppController desde un modelo X. Yo entre las cosas que quiero hacer es que me devuelva el id del usuario de sesion logueado y eso lo hace un metodo q cree en AppController quiero que lo haga a lo q cargeu el modelo porq dependiendo de eso el hace la consulta. Pero eso es una de las tantas cosas que quiero hacer usando metodos desde AppController. http://aikon.com.ve/ --~--~-~--~~~---~--~~ 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 CakePHP-es@googlegroups.com 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. -~--~~~~--~~--~--~---
Re: Como llamo una metodo de AppController desde un modelo
Si pero yo no quiero llamar un metodo del controlador de ese modelo desde el modelo. Quiero llamar un metodo creado en AppController desde un modelo X. Yo entre las cosas que quiero hacer es que me devuelva el id del usuario de sesion logueado y eso lo hace un metodo q cree en AppController quiero que lo haga a lo q cargeu el modelo porq dependiendo de eso el hace la consulta. Pero eso es una de las tantas cosas que quiero hacer usando metodos desde AppController. --~--~-~--~~~---~--~~ 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 CakePHP-es@googlegroups.com 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. -~--~~~~--~~--~--~---