我的zend应用程序中有几个模块。在我的模块的一个视图脚本中,我创建了一个URL
$links['create'] = $this -> url(array("controller" => "roles", "action" => "create"), "custom");
这会带来错误,说未定义Route“custom”。
什么是路线?在哪里定义它以及如何?
答案 0 :(得分:1)
Zend Framework手册对路由和路由器有相当不错的documentation,包括几种定义路由的方法的描述。
在最基本的层面上,路由既用于将URL解析为参数(比如应该使用哪个控制器和操作),也用于反向:获取参数并生成URL。
出于您的目的,除非您想要更改 ZF将如何构建您的网址,否则您只需将“自定义”部分从url
电话中删除即可。
答案 1 :(得分:1)
在我的bootstrap文件中,我通过添加以下功能
初始化了我的路由public function _initRouting() {
// Get Front Controller Instance
$front = Zend_Controller_Front::getInstance();
// Get Router
$router = $front->getRouter();
$routedetialevent = new Zend_Controller_Router_Route(
'/events/detail/:id',
array(
'controller' => 'events',
'action' => 'detail'
)
);
$routeregister = new Zend_Controller_Router_Route(
'/index/register/:id',
array(
'controller' => 'index',
'action' => 'register'
)
);
$routerdetail = new Zend_Controller_Router_Route(
'/commentaries/details/:id',
array(
'controller' => 'commentaries',
'action' => 'details'
)
);
$router->addRoute('post', $routedetialevent);
$router->addRoute('register', $routeregister);
$router->addRoute('detail', $routerdetail);
}
因为我在我的活动中添加了自定义路线,每当我访问详细信息页面时都会发表评论我不必在我的网址中写入ID,所以我的网址就像
http://localhost/example/events/detail/3
如果我不会添加路线而不是我的网址