ZF2 :: Como acessar variáveis de uma view em uma partial ou outra view?

Olá pessoal!

Nesse post eu mostrarei para você como usar uma variável de uma determinada view em outra view puxada pelo layout do seu site.

Fazendo o TCC da faculdade que é um sistema em ZF2 (ZendFramework 2), me deparei com uma dificuldade ao tentar integrar certas partes do template. No template que comprei e estou adaptando temos duas seções, uma seção para o título juntamente com os breadcrumbs e outra para o conteúdo. Essas sessões são distintas no código.

Sessão de Título juntamente com BreadCrumbs e a sessão de conteúdo do meu sistema.
Sessão de Título juntamente com BreadCrumbs e a sessão de conteúdo do meu sistema.

A solução normal é definir que a seção para o título e breadcrumb façam parte de um arquivo partials, o qual chamei de headerConteudo.phtml (view/partials/headerConteudo.phtml). Também para o conteúdo da view, a qual vem do Controller (no meu caso o controller é o IndexController e a Action é indexAction), geralmente colocamos no layout (view/layout.phtml na estrutura padrão do ZF2 ) o seguinte código $this->content. Pronto, o conteúdo da view será exibido no local especificado no layout (minha view estava em view/application/index/index.phtml).

Porém, por se tratarem de duas views diferentes (a view/partials/headerConteudo.phtml e a view/application/index/index.phtml), a view configurada no  controller (a index.phtml) e no layout por $this->content; é a que receberá quaisquer variáveis enviadas pelo próprio controller.

Mas há uma forma de no layout conseguirmos pegar esses dados enviados pelo controller e enviar para a outra view ou partial. Veja abaixo como eu fiz:

 

viewModel ()->getCurrent ()->getChildren (); $conteudo = $conteudo [0]; echo $this->partial ( "partials/headerConteudo.phtml", array ( "tituloPagina" => $conteudo->tituloPagina ) ); ?>;
content; ?>

É isso aí pessoal, espero que tenham entendido e que eu tenha os ajudado.

Fonte:
Blog do Rob Allen (em inglês) – http://akrabat.com/access-view-variables-in-another-view-model/. Acesso em 03/03/2015.

CategoriasSem categoria

Deixe um comentário

O seu endereço de e-mail não será publicado.

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.