KO3路由与目录

时间:2011-01-06 20:12:03

标签: routing routes kohana-3

为我的控制器创建路线时遇到问题。

我想在目录中组织控制器,并将一个控制器放入用户目录。但是我不知道如何访问它。

127.0.0.1/login/index,我希望它看起来像127.0.0.1/users/login。我将控制器移到用户目录中,但不知道如何强制我的路由正常工作。

以下路线不起作用:

Route::set('users', 'users(/<controller>(/<action>))')
    ->defaults(array(
        'controller' => 'login',
        'action'     => 'index',
    ));

1 个答案:

答案 0 :(得分:1)

路由有一个directory参数,使用它:

Route::set('users', 'users(/<controller>(/<action>))')
    ->defaults(array(
        'directory'  => 'users',
        'controller' => 'login',
        'action'     => 'index',
    ));

您也可以将目录作为动态路由参数传递:

Route::set('users', '<directory>(/<controller>(/<action>))')
    ->defaults(array(
        'controller' => 'login',
        'action'     => 'index',
    ));

这里我们不需要默认目录值,因为它是必需的。您可以使用regex(Route :: set()方法中的第三个arg)设置值范围。

PS。我喜欢简短的帐户操作路线:

Route::set('users', '<action>', array('action' => '(login|logout|register)'))
        ->defaults(array(
          'controller' => 'account',
        ));

因此,http://example.com/loginhttp://example.com/logout将有效。