Ghean 0 Denunciar post Postado Abril 23, 2008 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
Marcio Leandro 0 Denunciar post Postado Abril 24, 2008 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
Chackan 0 Denunciar post Postado Abril 24, 2008 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