Kohana 3:如何在应用程序/类/控制器中路由子目录

时间:2011-03-31 01:00:43

标签: php kohana

我对Kohana很新,并且想知道在应用程序/类/控制器目录中组织大量文件的最佳方法是什么。

我目前的结构是:

-application
--classes
---controller
----page
-----test.php

我想从网址调用页面而不需要页面或任何其他子目录的名称:

www.website.com/test/

我的控制器类开始了:

<?php defined('SYSPATH') OR die('No direct access allowed.');

/**
* Test
* 
* @package Test
* @category Page
* @author 
* 
*/
class Controller_Page_Test extends Controller_Template {

        // Default
        public function action_index() {
            // Template vars
    }

}

我需要做些什么来避免它抛出的404错误?我假设我需要在bootstrap.php中设置一个路由,但我真的不知道怎样做以允许从子目录中激活页面。

提前致谢。

1 个答案:

答案 0 :(得分:4)

在路线中使用directory param:

Route::set('with_dir', 
           'test(/<action>(/<id>))', 
           )
    ->defaults(array(
          'directory'  => 'page',
          'controller' => 'test',
    ));

您可以将regex用于控制器列表。例如,您在页面目录中有Controller_Test和Controller_Foo。这是一条路线:

Route::set('with_dir', 
           '<controller>(/<action>(/<id>))', 
           array(
               'controller'  => '(test|foo)',
           ))
    ->defaults(array(
          'directory'  => 'page',
          'controller' => 'test',
    ));