Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera, estou tentando montar um site, que tem no layout, uma parte que seleciona dados de um determinado Model.
é tipo assim: num canto da página eu tenho listado as 3 ultimas noticias postadas. E eu quero que isso apareça em todas as páginas que acessar, pois faz parte do layout.
Eu consegui fazer a listagem dessas noticias no pages_controller, na página inicial, montando a query lá e puxando os dados no layout, mas não quero ter que fazer isso pra todos os controllers de minha app.
Então como que eu posso fazer isso?
Já tentei colocar no controller geral, na app_controller, criando uma action index() e colocando a query dentro... mas não funcionou.. =/
Vlw Lucas,
eu consegui colocando na app_controller dentro do método beforeFilter(), mas não utilizei o parent::beforeRender() em lugar nenhum, e funcionou mesmo assim. Eu coloquei a mesma lógica que usaria se estivesse colocando diretamente no controller da notícia: criando a query, e setando a variável para utilizar na view.
$noticias = $this->Noticia->query("...");
...
$this->set('ultimasnoticias', $noticias);
Você deve deixar estas três ultimas noticias no seu layout e setar o seus dados em AppController, em beforeRender()
Lembre-se que se, algum controller utilizar o beforeRender também, você deverá fazer:parent::beforeRender();..antes de qualquer coisa