doulang7699 2012-01-06 11:05
浏览 52
已采纳

Kohana路由 - 子文件夹

Hy. I have 2 controllers, the first one application/classes/controller/welcome.php and the second one application/classes/controller/admin/welcome.php.

And I have the following routings, set in bootstrap.php

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

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

If I access example.com/welcome it calls index action from the application/classes/controller/welcome.php controller (this is good), if I access example.com/admin/welcome it calls index action from application/classes/controller/admin/welcome.php controller (this is good),

but if I access simply example.com, it calls the admin's welcome and not the other one, and I can't understand why.

I want this: if I access example.com, then call index action from application/classes/controller/admin/welcome.php controller. How can I solve this?

  • 写回答

2条回答 默认 最新

  • douxie7339 2012-01-06 11:54
    关注

    It looks like you've set the directory tag in the first route to be optional, and so it's matching when no directory is specified. Try:

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

    This should make the tag mandatory, and so it won't match on /.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器