我刚刚得到了一个名为Kohana的CRM项目,我之前从未听说过这个项目。
除了在子文件夹中的控制器和控制器名称不只是一个单词之外,一切都正常。
此控制器位于system/expenses.php中
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_System_Expenses extends Controller_System {
public $header = 'Expenses';
public function action_index() {
$this->template->content = view::factory('system/expenses/listings');
$this->template->content->expenses = expenses::get_all();
}
public function action_update() {
$expenses = expenses::find_by_id(form::get_value('id'));
expenses::update($expenses, form::data());
$this->redirect(request::current()->referrer());
}
}
当我尝试访问/system/expenses时,它给出一个404。如果我随后将控制器移动到基本控制器文件夹,它仍然不能工作,除非我将类重命名为Controller_Expenses而不是Controller_System_Expenses,然后在路由/expenses上工作
下面是bootstrap.php文件:
Route::set('automate', 'hourly')
->defaults(array('controller' => 'cron',
'action' => 'hourly'
));
Route::set('daily', 'daily')
->defaults(array('controller' => 'cron',
'action' => 'daily'
));
Route::set('auth', '<action>',
array(
'action' => '(login|logout)'
))
->defaults(array(
'controller' => 'auth',
'action' => 'login',
));
Route::set('super', 'system/(<controller>(/<action>(/<id>)))')
->defaults(array(
'directory' => 'system',
'controller' => 'settings',
'action' => 'index',
));
Route::set('default', '(<controller>(/<action>(/<id>)))')
->defaults(array(
'controller' => 'Dashboard',
'action' => 'index',
));
如果我在这里添加一个专门用于url的路由,这并不重要,如果我删除了“超级”路由,子文件夹中的任何东西都不起作用,即使我在“系统”控制器文件夹中将控制器重命名为Controller_Expenses,我只使用/expenses的路由仍然不起作用。
我不知道这是怎么回事。
转载请注明出处:http://www.nali5.com/article/20230524/2417000.html