[Resolvido] element
Boa tarde,
Eu estou criando um element para poder utilizar chamando nos layouts que eu precisar de um menu superior em minha aplicação, porém, quando o chamo no layout ele apresenta um erro no foreach que não estou conseguindo resolver.
Meu element esta criado da seguinte forma:
<?php
$Estruturas = $this->requestAction('/estruturas/pai');
foreach( $Estruturas as $estrutura ):
print $estrutura['Estrutura']['ds_descricao'];
endforeach;
?>
Os dados são chamados através de uma requestAction para o model estrutura e método pai, que retorna os registros,
segue método no controller da estrutura:
<?php
class EstruturasController extends AppController {
var $name = 'Estruturas';
var $helpers = array( 'Html' , 'Form' , 'Javascript' , 'Ajax' );
function index(){
$this->set( 'Estruturas' , $this->Estrutura->find( 'all' )) ;
}
function pai(){
$Estrutura = $this->Estrutura->find( 'all' , array( 'fields' => array( 'Estrutura.id' , 'Estrutura.ds_descricao' )));
$this->set( 'Estruturas' , $Estrutura );
}
}
?>
Então tenho meu layout:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="[http://www.w3.org/1999/xhtml">](http://www.w3.org/1999/xhtml)
<head><title>opa</title>
<?php print $html->charset(); ?>
<?php print $html->css( array( 'estrutura' ) ); ?>
<?php echo $scripts_for_layout ?>
</head>
<body>
<div id="DivGeral">
<div id="DivTopo">
<div id="DivTopoTopo">
<ul>
<li>[ Modo 800 x 600 ]</li>
<li>[ Aumentar fonte A+ | A- ]</li>
<li>[ Efetuar logon ] </li>
</ul>
</div>
<div id="DivTopoCentro">
<div id="DivTopoCentroTopo">
<?php print 'São Paulo, 20 de Novembro de 2009'; ?>
</div>
<?php print $html->image('logo.jpg', array( 'alt' => 'Franze Sobre Tecnolofia' )); ?>
</div>
<div id="DivTopoBase">
<?php print $this->element('menu_administrativo_superior'); ?>
</div>
</div>
<div id="DivCentro">
<div id="DivCentroTopo">
<div id="DivCentroTopoEsquerda"></div>
<div id="DivCentroTopoDireita">
<p><strong>Você esta em: </strong><a href="javascript:void(0)"> Principal</a> > <a href="javascript:void(0)">Usuario</a> </p>
</div>
</div>
<div id="DivCentroEsquerda"></div>
<div id="DivCentroDireita">
<div id="DivCentroDireitaTopo">
<div id="DivCentroDireitaTopoEsquerda">
<ul>
<li><img src="../img/add.png"/> <strong>Novo Cadastro</strong></li>
</ul>
</div>
<div id="DivCentroDireitaTopoDireita">
<ul>
<li> <img src="../img/info_info.png" /> Exibe informações do usuário </li>
<li> <img src="../img/ativo_info.png"/> Inativa usuário</li>
<li> <img src="../img/delete_info.png"/> Excluí usuário</li>
</ul>
</div>
</div>
<div id="DivCentroDireitaCentro">
<?php print $content_for_layout; ?>
</div>
</div>
</div>
<div id="DivFooter">
</div>
</div>
</div>
<?php $session->flash(); ?>
</div><!-- É aqui que eu quero que minhas views apareçam -->
<!-- Adicione um rodapé para cada página mostrada -->
<div id="footer">...</div>
</body>
</html>
E chamo o element dentro do layout na seguintes linhas e da seguinte forma:
<div id="DivTopoBase">
<?php print $this->element('menu_administrativo_superior'); ?>
</div>
Mas é apresentado o seguinte erro:
Warning (2): Invalid argument supplied for foreach() [APP\views\elements\menu_administrativo_superior.ctp, line 5]
Que na linha 5 do element é a seguinte linha:
foreach( $Estruturas as $estrutura ):
Alguém saberia me dizer o que pode ser, já que estou acompanhando a documentação do cakePHP sobre elements no link cakePHP elements e aparamentemenre esta correto?
Obrigado!
Discussão (2)
Carregando comentários...