【问题标题】:kohana 3.3 Routing in sub-categorieskohana 3.3 子类别中的路由
【发布时间】:2013-03-25 12:30:59
【问题描述】:

我有这个带有 Route 的代码(使用 Kohana 3.3)

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

Route::set('default', '(<controller>(/<action>(/<id>)))')
    ->defaults(array(
        'controller' => 'main',
        'action' => 'index',
    ));

当我输入www.my_site/admin时,它可以正常工作。

所有用户都必须经过身份验证,所以我重定向到发生这种情况的控制器。

public function before() {
    parent::before();
    Controller::redirect('admin/users/login'); ...

但是,我收到以下错误:

Kohana_HTTP_Exception [404]:在此服务器上找不到请求的 URL admin/users/login。

如何重定向/路由到www.my_site/admin/user/login

【问题讨论】:

  • 你有定义了action_login方法的users控制器吗?
  • 不,我有这个结构 -Controller(folder) --admin(folder) ---users(folder) ----login.php(controller) with code codeclass Controller_Admin_Users_Login ext ....code 我将在那里进行处理

标签: php kohana kohana-3


【解决方案1】:

如前所述,控制器和函数是否存在?

另外建议通过Route创建重定向URL

$route = Route::get('admin')->uri(array(
    'controller' => '..',
    'action' => '..',
));
Controller::redirect($route);

【讨论】:

    【解决方案2】:

    更新***

    结构
    -控制器(文件夹)
    --admin(文件夹)
    ---用户(文件夹)
    ----login.php(控制器)
    class Controller_Admin_Users_Login ext...

    kingkero回复对我有帮助

    $route = Route::get('admin')->uri(array(
                'directory' => 'admin',
                'controller' => 'users_login',
                'action' => 'index',
    ));
    
    Controller::redirect($route);
    

    但 url 有视图 www.my_site/admin/users_login

    我们可以查看 www.my_site/admin/users/login 吗?

    附:如果我想要太多,我很抱歉:)

    【讨论】:

    • 你的控制器是users_login,而不是有一个控制器users,动作login有一个具体的原因吗?
    • 此应用程序架构的构建使得每个“事件”(登录、注册、配置文件)都应在单独的控制器中完成。是的,我理解这种情况下的区别,我将首先查看链接。感谢您的帮助...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-18
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多