获取控制器路由参数

时间:2013-07-11 04:23:31

标签: kohana kohana-3 kohana-3.3

使用Kohana 3.3,我创建了一个标签式界面,我正在尝试根据路径参数检测哪个标签处于活动状态。

使用2个网址进行测试,如下所示:mysite.com/p/mycontroll 并且:mysite.com/p/Francis-Lewis/mycontroll

我的路线如下:

Route::set('profile', 'p(/<name>)(/<controller>(/<action>))', array(
        'name'          => '[\w\-]+',
        'controller'    => '[a-z]+',
        'action'        => '(view|edit|save|delete|create|cancel)',
    ))->defaults(array(
        'name'          => null,
        'directory'     => 'profile',
        'controller'    => 'main',
        'action'        => 'index',
    )); 

路由本身工作正常,选择mycontroll控制器。 这就是问题所在。 在控制器中:

$this->request->param('controller'); // returns NULL

在视图中

<?= Request::current()->param('controller') ?> // returns NULL

在敲了一下头之后,我在Kohana Request类中添加了一个函数来返回$_params数组以查看其中的内容。

以下是它的全部回报:

name => 'Francis Lewis'

如何获得当前控制器的任何想法?

2 个答案:

答案 0 :(得分:1)

请求对象中有一个函数:

$this->request->controller(); // Returns the current controller as a String

答案 1 :(得分:0)

如果您完全确定需要初始控制器,则可以使用下一个方法:

Request::initial()->controller();

否则使用此方法:

Request::current()->controller();