Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Método Auth->user()

Estou querendo mostrar o nome da pessoa que fez o login em minha página.. mas quando coloco este código diretamente na view da erro:

<?= this->Auth->user('nome')?>

Pesquisei no google e vi uma pessoa falando que deveria colocar esse código dentro de um método beforeFilter() ou beforeRender() coloquei e funcionou em ambos..

public function beforeFilter(Event $event){

    parent::beforeFilter($event);

    $nome = $this->Auth->user('nome');
        $this->set('nome',  $nome);

}

Existe uma forma melhor e correta de se fazer? e se essa que encontrei for a melhor maneira.. em qual dos dois métodos eu deixo Filter ou Render? o que cada metodo desse faz?

1 resposta
solução!

Olá Janai,

Controller::beforeFilter()

Este método é executado antes de cada ação dos controllers. É um bom lugar para verificar se há uma sessão ativa ou inspecionar as permissões de um usuário, por exemplo.

Controller::beforeRender()

Chamada após a lógica da ação de um controller, mas antes da view ser renderizada. Este callback não é usado com frequência mas pode ser preciso se você chamar o método render() manualmente antes do término de uma ação.

Mais detalhes dos callbacks dos Controllers CakePHP aqui => http://book.cakephp.org/2.0/pt/controllers.html

A utilização do beforeFilter() parece mais adequada ao caso. Você poderia fazer verificações sobre seu usuário e após isso disponibilizar informações do mesmo para a view. - mesmo que a semântica do beforeRender() no ciclo de vida possa fazer sentido, pensando exclusivamente em disponibilizar uma informação para apresentação -

Abraço