Router ::解析仅针对特定路由的Extensions()

时间:2013-09-12 13:30:46

标签: cakephp

是否可以仅对一条路由使用Router :: parseExtensions()?

我只需要xml的{​​{1}}扩展名,但不需要其他路由。使用SitemapsController也可以提供等于Router::parseExtensions(array('xml'))的不需要的/news/foo.xml(重复内容)。

1 个答案:

答案 0 :(得分:1)

如果您需要这样的请求

http://localhost/sitemap.xml

然后添加路线:

Router::connect('/sitemap.xml', array('controller' => 'sitemaps', 'action' => 'index')); 

将beforeFilter()函数添加到SitemapsController.php:

public function beforeFilter() {
    $this->viewClass = 'Xml';
}

如果您不想在路线规则中设置扩展并想要更复杂的解决方案,则必须设置正确的操作:

public function beforeFilter() {
    $this->viewClass = 'Xml';
    $action = reset(explode(".", $this->request->params['action']));
    $this->setAction($action);
}