Re: Como llamo una metodo de AppController desde un modelo

2008-01-29 Por tema Fran Iglesias


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

2008-01-29 Por tema Arantxa Grajal
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

2008-01-29 Por tema Pablo Viojo
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

2008-01-29 Por tema Gerardo Glez

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

2008-01-28 Por tema Arantxa Grajal
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

2008-01-25 Por tema Kurt

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.

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