1

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

它提出:

指定的控制器无效 (myweb)

这是我的阿帕奇error.log

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

这是我的代码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"> �&lt;?php echo $categories['categoriesName'];?></div></a></li>

    <?php endforeach;?>

有谁能够帮我?

4

3 回答 3

1

问题似乎是由于某种原因您的 url 呈现myweb为控制器而不是您的控制器。

我的猜测是您正在尝试使用 localhost 来显示您的应用程序,因此呈现的 url 类似于http://localhost/myweb/...

虽然可以使用localhost查看 ZF 应用程序,但随着应用程序变得越来越复杂,它通常会变得不方便。我建议您将虚拟主机用于除非常简单的应用程序之外的任何内容。

我很确定当您解决 url 问题时,php 警告可能会自行修复。

于 2012-09-08T08:21:25.240 回答
0

似乎该变量$this->category未在控制器中设置。您可以通过$this->view->category从控制器定义来做到这一点。

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

于 2012-09-07T11:40:12.003 回答
0

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

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

于 2012-09-07T11:36:07.317 回答