setflash cakephp3 cakephp session

cakephp3 - setflash cakephp



¿Cómo creo, escribo y leo datos de sesión en CakePHP? (6)

¿Alguien puede darme un ejemplo sobre cómo crear Sesiones y escribir datos en él? He visto una sintaxis sobre cómo escribir datos en una sesión usando el comando de escritura. Pero cómo crear una sesión y recuperar los valores en ella.

En mi aplicación, tengo dos datos, form_id y user_id que deben usarse en todas las solicitudes de página. Entonces, ¿cómo lo guardo como una variable de sesión y lo uso en toda la aplicación?

EDITAR

function register() { $userId=$this->User->registerUser($this->data); $this->Session->write(''User.UserId'',$userId); //echo "session".$this->Session->read(''User.UserId''); $this->User->data=$this->data; if (!$this->User->validates()) { $this->Flash(''Please enter valid inputs'',''/forms'' ); return; } $this->Flash(''User account created'',''/forms/homepage/''.$userId); }

Cómo usar la variable de sesión ''User.UserId'' en lugar de $ userId en $ this-> Flash (''Cuenta de usuario creada'', ''/ forms / homepage /''. $ UserId );

¿Y puedo usar esta variable en todos mis archivos de vista, porque en todas las solicitudes de página también paso el userId?

EDIT 2

Tengo 2 controladores, usuario y formulario. Escribo el ID de usuario en una variable de sesión en el controlador de usuarios . Tengo un archivo de vista llamado homepage.ctp, cuya acción se encuentra en el forms_controller. ¿Ahora cómo puedo usar la variable de sesión definida en el users_controller en la página de inicio? Lo siento si estoy haciendo preguntas tontas. Revisé el libro de torta, pero mis dudas no fueron aclaradas. También estoy probando el método de prueba y error de codificación, así que por favor ayúdenme.

EDIT 3

Tengo una variable de sesión ''uid'', que es la identificación del usuario en la acción de la página de inicio de un controlador.

$this->Session->write(''uid'',$this->data[''Form''][''created_by'']);

Necesito la misma variable en el método de acción de diseño del mismo controlador. Cuando doy

$uid=$this->Session->read(''uid''); echo "uid: ".$uid;

el valor no se repite.

¿No puedo usar la variable de sesión en el mismo controlador?


En este caso sería:

$this->Flash(''User account created'',''/forms/homepage/''.$this->Session->read(''User.UserId''));

y su segunda pregunta es dirigida por Jason Miy ( http://api.cakephp.org/class/session-helper ). Simplemente puede usar esto en su vista:

$userId = $session->read(''User.UserId'');

Leer las páginas apropiadas de libros de cocina lenta y cuidadosamente por lo general ayuda mucho ...


La panadería es tu mejor amiga:

http://book.cakephp.org/view/398/Methods

Todas sus lecturas / escrituras de sesión pertenecen al controlador:

$this->Session->write(''Person.eyeColor'', ''Green''); echo $this->Session->read(''Person.eyeColor''); // Green


Descubrí la razón por la cual el uid no se repetía (edite 3 partes de la pregunta). Se debe a un error tonto, ¿tenía un espacio en blanco después de la etiqueta final?> En el controlador. Ahora está funcionando bien.


cuando tengo un comportamiento de sesión extraño, y esto me ayuda.

MODELO:

function clearAllDBCache() { $db =& ConnectionManager::getDataSource($this->useDbConfig); $db->_queryCache = array(); }

`



Acceda a su Helper SessionHelper en lib/Cake/View/Helper/SessionHelper.php y agregue el método:

public function write($name = null) { return CakeSession::write($name); }