1

こんにちは、Zend Framework プロジェクトでエラーが発生しました...

それは提起しました:

無効なコントローラーが指定されました (myweb)

これが私のApacheerror.logです:

PHP 警告: foreach()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

問題は、何らかの理由でmyweb、コントローラーであるべきものではなく、URL がコントローラーとして表示されていることです。

私の推測では、アプリケーションを表示するために localhost を使用しようとしているため、次のような URL を提示しています。http://localhost/myweb/...

localhostを使用して ZF アプリケーションを表示することは可能ですが、アプリケーションが複雑になるにつれて不便になることがよくあります。非常に単純なアプリケーション以上のものにはvhostを使用することをお勧めします。

URLの問題を解決すると、phpの警告が自動的に修正される可能性が高いと確信しています。

于 2012-09-08T08:21:25.240 に答える
0

このエラーは、配列$this->categoryが空白であるため発生します。これが空の配列であるか、何も返さない場合、foreach ループはどのように実行されますか?

最初にこの配列を印刷して確認してください。

于 2012-09-07T11:36:07.317 に答える
0

$this->categoryコントローラーに変数が設定されていないようです。これは、コントローラーから定義することで実行でき$this->view->categoryます。

ほとんどの場合、対応するビュー スクリプトの代わりにレイアウト スクリプトでこれらのコントローラーが生成した変数を使用する場合、すべてのビューで同じデータを使用する必要があります。この場合は、次の質問を確認してください: Sending variables to the layout in Zend Framework

于 2012-09-07T11:40:12.003 に答える