Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde como faço para armazenar as informações do usuário logado, tipo após se logar exibir bem vindo usuário .... desta forma eu já consigo pegar os dados do usuário **$this->usuario->nome;**, gostaria de exibir o nome dele em toda a parte do site enquanto ele estivesse logado algo do tipo:
session_start();
session['user'] = 'jow xavier'; // echo session['user'];Da forma que sugerida é a mesma forma que eu estava tentando usar, quando eu quero exibir a informação na view eu faço
$usuario = Zend_Auth::getInstance()->getIdentity();
echo $usuario->nome
Dessa forma não me retorna nada, mas se eu usar dentro do controller funciona, dessa forma
public function init(){
$usuario = Zend_Auth::getInstance()->getIdentity();
$this->view->usuario = $usuario;
}
na view
$this->usuario->nome
A forma correta de se usar é passando pelo controller realmente, pois se eu usar direto na view o array "usuário" está vindo com valores, só não exibe nada, veja o print_r ?
stdClass Object
(
[id] => 1
[nome] => Jonathan Xavier
[avatar] => 1.jpg
[news] => 0
)Olha, não tem porque não funcionar pegando direto na view. O print_r que você diz é feito na view ou no controller? Tendo passados os dados pelo controller ou diretamente na view?
Carlos Eduardo
O print_r é feito diretamente na view
Certo... Como disse, não faz muito sentido. Então vamos debugar pra achar onde está o problema:
Na sua view:
<?php
$usuario = Zend_Auth::getInstance()->getIdentity();
Zend_Debug::dump($usuario, 'Usuário');
Zend_Debug::dump($usuario->nome, 'Nome do usuário');
exit;
?>
Poste aqui a saída no navegador.
Carlos Eduardo
Se voce esta fazendo o Login no padrao Zend usando $authAdapter->getResultRowObject(...) assim que o usuario foi autenticado
basta pegar essa informação na pagina que vc quiser com:
$usuario = Zend_Auth::getInstance()->getIdentity();
exemplo:
echo $usuario->Login;