0

我有控制器

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

尝试加载此控制器,我收到消息 Not found

怎么了?

更新!

class Controller_Administrator_Base extends Controller_Template {

    public $template = 'panel/index';

    public function action_index(){
        echo 'kupakonia';
    }
} // End Welcome

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

还是不能更新。

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

有什么建议吗?

附言。仍然无法更新此主题:/ tekst 中的 Wtf 必须比代码中的字符多?这是我在 stackoverflow 上的第一个 asc。对此很抱歉;)

4

1 回答 1

3

您的 Bootstrap 文件中有两条 catch all routes (defaultuser)。这两条路线的作用完全相同。

此外,由于这些路由是 catch all 并且路由的顺序很重要,这意味着如果 catch all 路由是第一个,它将匹配所有 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.

于 2013-11-08T10:35:42.643 回答