Kohana 3.3路线和内部要求

时间:2013-08-02 02:23:31

标签: routing hmvc kohana-3.3

我是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然后从该控制器我希望能够通过内部请求加载/显示其他部分。我错了吗?我正试图划分每个区域,以便在将来我需要改变社交时,我不必触及任何其他管理区域或者在我正在改变的部分之外的文件数量最少。

很抱歉这篇长篇文章,感谢您提供任何帮助!

1 个答案:

答案 0 :(得分:0)

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',
    ));

结束工作!