默认情况下,页面在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'
强迫你只有一个'error/404'
模板?