目前正在使用HMVC
处理CodeIgniter应用程序HMVC应用程序有自己的包含
的routing.php$route['finance/bill/add'] = 'finance/show_addBill';
$route['finance/transaction/add'] = 'finance/show_addTransaction';
$route['finance/(:any)'] = 'finance/$1';
$route['finance'] = 'finance';
该应用程序有一个财务控制器。 什么时候去
http://localhost/finance** it goes to **public function index(){}
http://localhost/finance/transaction/add DOES NOT go to **public function show_addTransaction() {}
http://localhost/finance/addTransaction DOES goes to **public function show_addTransaction() {}
我无法弄清楚为什么以上路线不起作用:S
答案 0 :(得分:1)
你不应该在HMVC应用程序中定义路线(作为一个非常强大的经验法则 - 有例外但很少见。)
您应该有一个文件夹结构,如:
Modules
- Finance
- - Controllers
- - - finance //should have index, add and an other generic functions.
- - - transaction // transactions specific functions
- - - bill // bill specific functions.
路由是自动的 - 沿着这些方向:
url/finance
- >寻找Modules/Finance/Controllers/Finance/Index()
url/finance/bill
- >它将首先查找Modules/Finance/Controllers/Finance(.php)/Bill()
,然后查找Modules/Finance/Controllers/Bill(.php)/index()
因此,对于您的方案,您应该:
$route['finance/bill/add']
bill.php
控制器 - class bill
- 方法add
$route['finance/transaction/add']
transaction.php
控制器 - class transaction
- 方法add
$route['finance/(:any)']
不存在 - 正如我所说的URL路由是自动的,所以只要你有相关的控制器和方法就可以找到东西
$route['finance']
使用finance.php
方法的简单index
控制器。