使用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'
如何获得当前控制器的任何想法?
答案 0 :(得分:1)
请求对象中有一个函数:
$this->request->controller(); // Returns the current controller as a String
答案 1 :(得分:0)
如果您完全确定需要初始控制器,则可以使用下一个方法:
Request::initial()->controller();
否则使用此方法:
Request::current()->controller();