2013-07-11 87 views
0

使用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' 

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

回答

1

请求对象没有为一个功能:

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

如果你有绝对的把握要初步控制,那么你可以使用下一个方法:

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

否则使用此方法:

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