Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ghean

Recuperar Array - Zend Framework

Recommended Posts

foreach($this->produtos as $produto) esta retornando erro, mas não sei o motivo, em outras aplicações esta funcionando normal. Não sei se pq quero listar logo na pagina inicial da minha aplicação....

 

quando dou um print_r($this->produto), não retona nenhum valor.

 

Segue abaixo codigo:

 

IndexController

<?php
	class IndexController extends Zend_Controller_Action
	{
	
		public function init()
		{
			$this->initView();
			$this->view->baseUrl = $this->_request->getBaseUrl();

			Zend_Loader::loadClass('Produtos');
		}
		
		public function indexAction()
		{
			$view = Zend_Registry::get('view');
			$view->assign('body','index.phtml');
			$this->_response->setBody($view->render('default.phtml'));
			
			$produtos = new Produtos();
			$this->view->produtos = $produtos->fetchAll();
			
			$this->render();
		}
	}
?>

View index.phtml

 

<table>
<?php
	$counter = 1;
	foreach($this->produtos as $produto){
		if ($counter % 4 != 0)
		{
			echo $counter == 1 ? '<tr>' : '</tr><tr>';
		}
?>
	<td id="prod_box">
		<?=$this->escape($produto->nome)?><br/>
		<?=$this->escape($produto->descricao)?><br/>
		<?=$this->escape($produto->valor)?><br/>
	</td>
<?php
	$counter++;
	}
?>
</table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

foreach espera um array como argumento. A propriedade $this->produto não é do tipo array no momento em que você a chamou.

Uma dica é, na declaração da propriedade você a definir como array, assim:

 

class MyClass
{
   public produto = Array();
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

outra coisa que pode dar esse erro, é quando você nao traz nada no array, ai ele é null e da esse erro de argument!

 

bem provavel que você nao esteja trazendo nada do banco... verifica se tem dados para ele buscar no banco

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.