0

使用 Kohana 3.3,我创建了一个选项卡式界面,并尝试根据路由参数检测哪个选项卡处于活动状态。

使用 2 个如下所示的 url 进行测试: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'

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

4

2 回答 2

1

在请求对象中有一个函数:

$this->request->controller(); // Returns the current controller as a String
于 2013-07-11T09:39:25.663 回答
0

如果您绝对确定您想要初始控制器,那么您可以使用下一个方法:

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

否则使用此方法:

Request::current()->controller();
于 2013-07-30T06:34:32.597 回答