首页 > PHP开源 > 建立子目录路由–kohana3使用手册

建立子目录路由–kohana3使用手册

2011年2月10日 发表评论 阅读评论

如果你想在你的控制器里使用子目录,并且动态的在你的路由里得到支持。你可以使用下面的示例来作为一个起点。

支持一个单独子目录

让我们来考虑下列控制器(Controller_Foo_Bar)

/home/kerkness/application/classes/controller/foo/bar.php

若你想从下列 url 来访问这个控制器

http://example.com/foo/bar/action/id

那你可以按照下面的路由来做

Route::set(‘default’, ‘(<directory>(/<controller>(/<action>(/<id>))))’)

->defaults(array(

‘directory’  => ‘foo’,

‘controller’ => ‘bar’,

‘action’     => ‘index’,

));

支持多种子目录

如果你希望如下列url那样支持多种子目录

http://example.com/my/sub/directory/controller/action/id

你可以在路由中加入点正则表达式

Route::set(‘default’, ‘(<directory>(/<controller>(/<action>(/<id>))))’, array(‘directory’ => ‘.+?’))

->defaults(array(

‘directory’  => ‘foo’,

‘controller’ => ‘bar’,

‘action’     => ‘index’,

));

一点警告!!

一些事情必须知道。上面的路由示例假定你所有的控制器都是用了子目录。如果你仅仅有一些控制器位于子目录,最好考虑下为每一个都定义像下面示例这样的路由

Route::set(‘default’, ‘foo/<controller>(/<action>(/<id>))’)

->defaults(array(

‘directory’  => ‘foo’,

‘controller’ => ‘bar’,

‘action’     => ‘index’,

));

分类: PHP开源 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.