我有控制器
--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
所有路线。我正在尝试从谷歌的很多sugesstions并没有任何帮助,我写了一些因为我不能更新这个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',
));
任何sugestions?
聚苯乙烯。仍然无法更新此主题:/ Wtf必须是tekst中的字符多于代码中的字符吗? 这是我在stackoverflow上的第一个asc。很抱歉这个;)
答案 0 :(得分:3)
您有两个捕获Bootstrap文件中的所有路由(default
和user
)。这两条路线完全相同。
此外,由于这些路由是全部捕获并且路由的顺序很重要,这意味着如果catch所有路由是第一个匹配所有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
的路由。