我正在为 Kohana 3.1 开发授权模块。在我模块的 init.php...
Route::set(
'a11n',
'<controller>',
array(
'controller' => 'signIn|signOut|signUp'
)
);
我不是 100% 确定如何使用 Kohana 的路由机制,但我正在尝试实现用户可以键入“signIn”、“signOut”或“signUp”来从我的模块运行 Controller 。你看,我想要“可移植”授权系统...这样我就可以简单地“复制粘贴”正确的目录,启用该模块,我的网站就有了授权。
请记住,对于这条路线,我不想以任何方式改变默认路线的行为。我不知道我的代码有多正确......但它有效!我测试过,我也可以在不使用第三个参数的情况下获得相同的效果。我现在用它实现了什么?
现在的问题是......我如何通过键入“登录”用户运行模块“Controller_SignIn”以某种方式设置模块的路由?
最佳答案
你应该使用路由来做到这一点,像这样:
Route::set('SignIn', '/sign-in(/<action>)',
array(
'action' => 'index|action1',
)
)
->defaults(
array(
'controller' => 'SignIn',
'action' => 'index',
)
);
Route::set('SignOut', '/sign-out(/<action>)',
array(
'action' => 'index|action1',
)
)->defaults(
array(
'controller' => 'SignOut',
'action' => 'index',
)
);
或
Route::set('SignIn', '/sign-in/',
array()
)
->defaults(
array(
'controller' => 'user',
'action' => 'login',
)
);
Route::set('SignOut', '/sign-out/)',
array()
)->defaults(
array(
'controller' => 'user',
'action' => 'logout',
)
);
关于routes - 如何在 Kohana 中的 Controller 名称之间添加破折号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6238843/