【问题标题】:Kohana 3.3 routes and internal requestsKohana 3.3 路由和内部请求
【发布时间】:2023-04-04 04:39:01
【问题描述】:

我是 MVC 的初学者并试图弄清楚这一点。更多的是一个业余爱好者,但我正在努力学习!

我正在尝试创建一个包含多个区域的管理区域。商店、博客、社交等。

我使用的目录布局是:

Controller [folder]
-Admin [folder]
--area name, ie Shop/Blog/Social [folder]
--- Index.php (controller for that area)

我正在为商店使用此路由:

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

加载 Controller/Admin/Shop/Index.php:类 Controller_Admin_Shop_Index 扩展 Controller {}。这一切都很好,太棒了!

我最后要做的是创建一个管理区域:/admin/ 它将在导航到其他部分时加载它们。

这就是我陷入困境的地方,不知道该去哪里。

我希望能够查看 url.com/admin/ 并且其中会有不同区域的标签。这将加载 url.com/admin/shop/ 或 url.com/admin/social/

我是否需要为每个目录创建一个 catch all 路由?

我的尝试失败了:

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

或者我是否需要为所有可能的区域创建路线而不是放置?

应用程序流将加载 admin/index,然后从该控制器我希望能够通过内部请求加载/显示其他部分。我对这一切都错了吗?我正在尝试划分每个区域,这样如果我将来需要更改社交,我就不必触及任何其他管理区域或我正在更改的部分之外的最少文件。

抱歉发了这么长的帖子,感谢您提供的任何帮助!

【问题讨论】:

    标签: routing hmvc kohana-3.3


    【解决方案1】:
    Route::set('admin/backend/shop', 'admin/backend/shop(/<controller>(/<action>(/<overflow>)))',
        array('action' => '(force)', 'overflow' => '.*?')
        )->defaults(array(
            'directory' => 'admin_backend_shop',
            'controller' => 'index',
            'action'     => 'index',
        ));
    
    Route::set('admin', 'admin(/<controller>(/<param_action>(/<overflow>)))',
        array('param_action' => '(update|view)', 'overflow' => '.*?'))
        ->defaults(array(
            'directory' => 'admin',
            'controller' => 'index',
            'action'     => 'index',
        ));
    

    终于开始工作了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多