Zend_Dojo_Form をビュー (正常に動作する場所) からレイアウトに移動しました。これは、すべてのページで役立つものです。ただし、レイアウトではフォームは機能しなくなります。dijit 要素は表示されず、通常の HTML フォームと同じように動作します。
私のブートストラップの関連部分は次のとおりです。
protected function _initView()
{
Zend_Layout::startMvc(array(
'layoutPath' => '../application/layouts',
'layout' => 'default'
));
$view = new Zend_View();
$view->setEncoding('UTF-8')
->doctype('HTML5');
// init Dojo
Zend_Dojo::enableView($view);
$view->dojo()->enable()
->setCdnVersion('1.5')
->requireModule('dojo.data.ItemFileWriteStore')
[...]
->addStyleSheetModule('dijit.themes.tundra');
// assign the view to the viewRenderer, so it will be used by the MVC actions
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
$viewRenderer->setView($view);
return $view;
}
エラー (JS または ZF) はありません。フォームは正常に機能しません。
Dojo で何らかの方法でレイアウト ビューを有効にする必要があると思います。上記のブートストラップ メソッドのレイアウト部分を次のように変更してみました。
$layout = Zend_Layout::startMvc(array(
'layoutPath' => '../application/layouts',
'layout' => 'default'
));
$view = $layout->getView();
Zend_Dojo::enableView($view);
$layout->setView($view);
しかし、それは何の違いもありませんでした。
私の問題と非常によく似たこの質問を見つけましたが、受け入れられた回答は、私がすでに行っているレイアウトに道場ヘルパーを含めることを示しているだけです。