デフォルトでは、ページはApplication
module.config 配列で次のように設定されています。
'template_map' => array(
'error/404' => __DIR__ . '/../view/error/404.phtml'
ページを変更したい。ViewModel
変数でいっぱいの新しいものが欲しいです。これは、単にテンプレートを変更するだけでは不十分であることを意味します。
'error/404' => __DIR__ . '/../view/error/my_new_404_template.phtml'
しかし、作り方がわかりません。リクエストが に届く方法がわかりません'error/404'
。
それのために新しいものを作成する方法は
ViewModel
?それに変数をアタッチする方法は?
ルートはどのよう
'error/404'
に変化するのですか?
たとえば、'error/404'
ページには次のようなメソッドがあります。
public function pageNotFoundAction() {
$view = new ViewModel();
$view->setTemplate('error/404'); // set my template
$sm = $this->getServiceLocator()->get('SessionManager');
$cont = new Container('SomeNamespace', $sm);
$view->var1 = $cont->offsetGet('someValue1'); // the "error/404" template
$view->var2 = $cont->offsetGet('someValue2'); // is full of variables
$view->var3 = $cont->offsetGet('someValue3');
$view->var4 = "One more view variable";
// And now I return it somewhere and want it to be called
// in case of "the page is not found"
return $view;
}
そのような変更を行うにはどうすればよいですか?彼らが作成したシステムが、'error/404'
. 助けてください。
更新 1
さらに複雑なタスク。複数の'error/404'
ページを持つ方法は?'not_found_template'
フレームワークを作成した人に、ページの配列を持つことができないこと を知っているかどうかを尋ねたいと思い'error/404'
ます。それはどのようにできますか?このオプションを次のように設定すると:
'template_map' => array(
'error/404' => __DIR__ . '/../view/error/404.phtml',
'my-page/one_more_error404' => __DIR__ . '/../view/my-page/my-page/one_more_error404.phtml',
'other_page/second_404' => __DIR__ . '/../view/other-page/one_more_error404.phtml',
'not_found_template' => array(
'error/404',
'my-page/one_more_error404',
'other-page/second_404',
);
エラーがスローされます。テンプレート'not_found_template'
を 1 つだけにする必要がありますか?'error/404'