子文件夹中的 Kohana 3.3 控制器


Kohana 3.3 controllers in subfolders

我有控制器

--controllers
  --Administrator
    -Base.php
    -Admin.php (extend Base.php)
-controller1.php
-controller2.php
-etc

我的路线看起来像这样

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

尝试加载此控制器,但收到消息"未找到

"

怎么了?

更新!

class Controller_Administrator_Base extends Controller_Template {
    public $template = 'panel/index';
    public function action_index(){
        echo 'kupakonia';
    }
} // End Welcome

所有路线。我尝试了很多来自谷歌的建议,但没有任何帮助,我写了一些东西,我无法更新这个 tobic becouse 里面的代码太多了。

仍然无法更新。

Route::set('default', '(<controller>(/<action>(/<id>)))')
->defaults(array(
    'controller' => 'read',
    'action'     => 'index',
));
Route::set('user', '(<controller>(/<action>(/<id>)))')
->defaults(array(
    'controller' => 'user',
    'action'     => 'index',
));
Route::set('administrator', 'administrator(/<controller>(/<action>(/<id>)))')
->defaults(array(
    'directory' => 'Administrator',
    'controller' => 'base',
    'action'     => 'index',
));

有什么建议吗?

Ps. 仍然无法更新此主题:/Wtf 在 tekst 中的字符必须比在代码中的字符多吗?这是我在StackOverflow上的第一个ASC。很抱歉这个;)

在引导程序中有两个捕获所有路由(defaultuser)。这两条路线的作用完全相同。

此外,由于这些路由是全部捕获的,

并且路由的顺序很重要,这意味着如果捕获所有路由是第一个,它将匹配所有 URL。

试试这个:

Route::set('administrator', 'administrator(/<controller>(/<action>(/<id>)))')
->defaults(array(
    'directory' => 'Administrator',
    'controller' => 'base',
    'action'     => 'index',
));
Route::set('default', '(<controller>(/<action>(/<id>)))')
 ->defaults(array(
    'controller' => 'read',
    'action'     => 'index',
));

另一件事,拥有所有路线通常是不好的做法。尝试创建特定于您的Controllers的路线。