CakePHP: Variable de sesión en vista
Tenía un pequeño problema que conseguí resolver. Para un desarrollo había creado un entorno en el cual me daba mucha pereza integrar un sistema de login como othAuth con lo que intenté hacerlo a mano, como siempre.
Una variable de sesión que diga si el usuario se ha autentificado correctamente o no, en base a eso montamos el acceso a las distintas zonas del site. Lo que viene siendo el menú principal es un element y no sabía si era posible usar las variables de sesión en Vista.
La primera pretensión -para entender el uso- es hacer que el típico enlace de Login se convierta en Logout si el usuario está dentro. Una vez el usuario entra al sistema, cuando se comprueba que sus credenciales son perfectamente válidas se crea un:
function login()
{
if($creds=='TRUE')
$this->Session->write('logged','1');
else
$this->flash('Pos va ser que no', '/users/login');
}
Y ahora ¿cómo usamos esa variable de sesión en nuestro elemento particular?. Después de varias pruebas (thanks minskog) me he dado cuenta de la sencillez del asunto. Directamente en vista usamos la variable $session:
if($session->read('logged')=='1')
echo '<li><a href="/users/logout"<Logout>/a></li>';
else
echo '<li><a href="/users/login"<Login>/a></li>';
Con esto y un bizcocho... nunca te acostarás el día antes de que te toque la lotería sin saber una cosa más ;).
hola sabes tengo una duda con respecto a la variables de session en las vistas, cuando envio una variable que posee un unico valor puedo mostrarla en la vista pero cuando envio una variable compuesta no puedo acceder a cada uno de los elementos de la varible, por ejemplo la varible producto la cual posee un id, nombre, descripcion, recibo la variable de session en la vista pero no se como acceder a los elementos.
Te agradeceria mucho que me ayudaras por favor ya que no encuentro informacion sobre mi problema.
te antemano mucha gracias.
Prueba a hacer un debug() de esa variable para ver lo que contiene y cómo se puede acceder a los valores de la misma.
Hola hace poco tenia el mismo problema y lo que hice fue poner en la vista
($_SESSION['Producto']['id'])
Ok gracias al hacer el debug pude darme cuenta de mi error


