2012-02-08 86 views
2

我有一个路线:的Kohana 3.2路线:多个目录

Route::set('foo/subdir', '<directory>/<variable>/subdir/<controller>/<action>'); 

我想路线这个网址下面的控制器/动作:

/application/classes/<directory>/subdir/<controller>.php::action_<action>() 

我已经有了,需要这条路线太,这使事情变得复杂:

Route::set('foo', '<controller>/<variable>/<action>'); 

这可能吗?

回答

0

我想的子目录追加到目录

这将使用新的Route::filter功能可以在Kohana的V3.3。 Kohana 3.1或3.2目前没有办法在不修改Route和/或Request类的情况下做到这一点。

+1

我最终修改了请求类以添加该功能。 – 2012-11-20 19:36:14

+0

有人可以发表一个如何让这个工作的例子吗?它不完全像Kohana文档解释很多。 – 2015-02-08 00:49:38

3

为什么不能,只要在之后定义了默认路由即目录路由。

Route::set('foo/subdir', '<directory>/<variable>/subdir/<controller>/<action>') 
    ->defaults(array(
     'directory'  => 'default_directory', 
     'controller' => 'index', 
     'variable'  => 'default_variable', 
     'action'  => 'index', 
    )); 

Kohanas路由支持目录'本地',没有必要破解任何东西。

请注意您的类名也必须包含目录名称。

+1

是什么造成的问题是subdir。我想将subdir追加到目录。你上面的代码不会去我在第二个代码片段中指定的目录。 – 2012-02-08 18:31:50

0

使用REGEXP将目录和子目录作为/ directory /子目录/控制器/动作 以匹配Route,如// regexp允许您放入/在目录中。然后在Route类中稍作修改,将其全部更改为_

尚未测试...。 ;)但我即将...

+3

也许你应该在发布之前测试... – 2012-10-09 10:41:23