Como armazenar dados em sessões vars usando Zend Framework 2
-
02-01-2020 - |
Pergunta
Estou interessado em ter dados que possam ser acessados por meio de todas as minhas visualizações e controladores, mas gostaria que esses dados fossem apagados quando o navegador for fechado ou em uma ação de logout.
A razão para isso é porque quero que minhas visualizações funcionem apenas se uma variável estiver definida.por exemplo:
public function adminAction(){
if ($rol_type=='admin'){
$this->renderScript('index/admin.phtml');
}
else{
$this->renderScript('index/adminLogin.phtml');
}
}
Gostaria também que a visualização admin.phtml não pudesse ser acessada sem que a variável fosse definida como admin, para que ninguém possa simplesmente alterar a URL e acessar o painel de administração.
Eu tenho lido a documentação do framework zend 2 sobre sessão, mas há muitas coisas dentro do módulo de sessão, então não sei o que usar ou onde procurar.
Eu também ficaria muito grato se você pudesse me dizer qual é a melhor maneira de atingir meu objetivo (porque não tenho certeza se essa é a melhor maneira de fazer o que quero).
Solução
Você pode usar :
use Zend\Session\Container;
No controlador:
$user_session = new Container('mySession');
$user_session->key = "Your Value";
Esta chave pode ser passada para sua visualização ou outros modelos e controladores.
Para recuperar, temos que fazer como:
$user_session = new Container('mySession');
$keyValue = $user_session->key; //here you will get the value stored above
espero que ajude
Obrigado