【发布时间】:2009-05-27 16:01:35
【问题描述】:
这个问题链接到this one
如何将类别部分的默认设置为请求url中的类别值?
$Router=$this->_front->getRouter();
$CategoryRoute = new Zend_Controller_Router_Route('category/:category/:controller/:action/*',
array(
'controller' => 'index',
'action' => 'index',
'category' => 'aaa'
));
$Router->addRoute('category', $CategoryRoute);
换句话说,在我构建这条路线时,我需要将值 [aaa] 作为类别的值。 [category] 总是有一个值,否则它将使用默认路由。
我的意思的例子:
如果我使用 url http://baseurl/category/mycat/index 浏览网站
我将被路由到 controller=index、action=index、category=mycat。
但是,在我使用 Zend_View::url() 帮助器的所有视图文件中,链接将指向:
http://baseurl/category/aaa/somthing/somthing(使用上面的确切路径)
虽然我实际上需要它们指向:
http://baseurl/category/mycat/somthing/somthing
发生这种情况是因为 category 的默认值是作为常量写入路由中的,而不是以某种方式从当前 URL 中获取的。
我目前通过自己从 URL 中提取类别并将其设为默认值来解决此问题。
【问题讨论】:
-
你能用一些网址澄清一下哪些有效,哪些无效?
标签: php zend-framework routing