通常如果我想创建页面/user/profile
,我会在用户控制器中创建函数profileAction()
。
现在,如果我想创建一个名为/error/404
的页面,由于合成错误404Action()
,我无法创建unexpected '404', expecting 'identifier'
有没有办法用这样的数字创建页面?
答案 0 :(得分:3)
一种方法是定义自定义路线,如下所示:
resources.routes.error.route = "/error/:id"
resources.routes.error.type = "Zend_Controller_Router_Route"
resources.routes.error.defaults.module = default
resources.routes.error.defaults.controller = error
resources.routes.error.defaults.action = index
resources.routes.error.reqs.id = "\d+"
在indexAction中,您将转发到特定错误代码的操作。例如,对于404错误:
class ErrorController extends Zend_Controller_Action {
public function indexAction() {
$errorId = $this->_getParam('id', null);
return $this->_forward("error$errorId" );
}
public function error404Action() {
echo "error 404";
}
}
这是一个非常简化的例子,但它应该足以说明如何完成它。
另一种方式,而不是转发,只是为了呈现适当的视图脚本,例如
class ErrorController extends Zend_Controller_Action {
public function indexAction() {
$errorId = $this->_getParam('id', null);
// e.g. redner error/error404.phtml
$this->_helper->viewRenderer('error$errorId');
}
}