zend layout.phtml错误

时间:2012-09-07 10:51:23

标签: php zend-framework zend-view

嗨,我的Zend Framework项目出错...

它提出了:

  

指定的控制器无效(myweb)

这是我的apache error.log

  

PHP警告:第107行的/var/www/myweb/application/layouts/scripts/layout.phtml中为foreach()提供的参数无效

以下是layout.phtml中的代码:

<?php foreach($this->category as $categories):?>

    <li><a href="<?php echo $this->url(array('controller'=>'product', 'action'=>'index','category'=> $categories['categoriesName']), null, true);?>"><div id="sidemenu"> �<?php echo $categories['categoriesName'];?></div></a></li>

    <?php endforeach;?>

有人能帮助我吗?

3 个答案:

答案 0 :(得分:1)

问题似乎是因为某些原因你的网址是myweb作为控制器,而不是你的控制器。

我的猜测是您尝试使用localhost来显示您的应用程序,因此会显示类似于http://localhost/myweb/...的网址

虽然可以使用 localhost 来查看ZF应用程序,但随着应用程序变得更加复杂,它常常变得不方便。我建议你使用vhost作为一个非常简单的应用程序。

我很确定当你解决网址问题时,php警告可能会自行解决。

答案 1 :(得分:0)

此错误是因为您的数组$this->category为空。如果这是空白数组或什么都不返回那么foreach循环将如何执行?

所以首先打印这个数组并检查。

答案 2 :(得分:0)

似乎未在Controller中设置变量$this->category。您可以通过从控制器定义$this->view->category来完成此操作。

大多数情况下,在布局脚本中使用这些控制器生成的变量而不是相应的视图脚本时,您希望在每个视图中使用相同的数据。如果是这种情况,请查看以下问题:Sending variables to the layout in Zend Framework