2011-12-16 8 views
5

Tengo un comportamiento que permite la segregación de los datos de usuario basándose en el identificador de usuario almacenado en la sesión. En CakePHP 1.3 que podría hacer esto:Lectura de una variable de sesión dentro de un comportamiento en cakephp 2

App::import('Component', 'Session'); 
$session = new SessionComponent(); 
$session->read('Auth.User.id'); 

Pero en CakePHP 2, no se puede crear una instancia de un componente como la de un comportamiento debido a que el componente requiere __construct ComponentCollection del controlador como parámetro.

¿Es posible acceder a una variable de sesión dentro de un comportamiento en CakePHP 2? ¿Cuál es la mejor manera de hacerlo?

Respuesta

23

Si observa el código SessionComponent, verá que es solo un contenedor para la clase CakeSession.

para que pueda hacer lo siguiente:

App::uses('CakeSession', 'Model/Datasource'); 
$user_id = CakeSession::read('Auth.User.id'); 
+1

Buena atrapada .. claramente no estaba pensando demasiado duro cuando me envió esta última noche. –

3

En CakePHP 2.0 también puede simplemente llamar a la sesión de métodos a través de la CakeSession estática :: método() sin tener que cargar nada ...; -)

+3

bueno, su clase todavía debería tener la declaración 'App :: uses ('CakeSession', 'Model/Datasource');'! ;) – mark

Cuestiones relacionadas