0

Zend Framework のオートローダに問題があります (と思います)。これは必ずしもオートローダ側の動作が間違っているとは限りませんが、何かが欠けている可能性があります。

現在、次のように APPLICATION_PATH があります。

/home/amurray/NetBeansProjects/MyProject/application

そのパスの下に次のようなレイアウトがいくつかあります。

APPLICATION_PATH . /layouts/scripts/layout.phtml
APPLICATION_PATH . /layouts/scripts/layouthome.phtml
etc..

コントローラーでレイアウトを切り替えようとすると、次のようになります。

$this->_helper->layout->setLayout('/home/amurray/NetBeansProjects/MyProject/application/layouts/scripts/layouthome');
-or-
$this->_helper->layout->setLayout(APPLICATION_PATH . '/layouts/scripts/layouthome');

スクリプトが見つからないというエラーが表示され、エラー メッセージは、キャメル ケースのディレクトリ名 (上記の両方の方法で) を小文字の破線のディレクトリ名に変更していることを示しています。

eg: NetBeansProjects = net-beans-projects

パスを見つけることができない明白な理由。ただし、スクリプトを変更しようとしない場合、デフォルトのレイアウト (layout.phtml) は正常に機能しています (ini 構成で設定)。

オートローダーがこの問題を引き起こしていると考えていますが、デフォルトが機能する理由はわかりませんが、切り替えによってオートローダーがディレクトリを変更します。

4

1 に答える 1

2

あなたはただ使う

$this->_helper->layout->setLayout('layout.phtml'); //no paths

application.ini (またはブートストラップ) でレイアウト パスを設定します。

resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
于 2011-06-23T17:31:23.420 に答える