使用CodeIgniter在子文件夹中路由控制器

Liv*_*eEn 20 php codeigniter codeigniter-2

因为我想分离系统的前端和后端.我在控制器中创建了2个文件夹作为前端和后端

下面是我的控制器文件夹的结构

controller
 --frontend
   ---store.php
   ---processing.php
   ---profile.php
   ---authenticate.php
   ---register.php 

 --backend
   ---authenticate.php
   ---stats.php
   ---users.php
   ---property_manage.php
   ---register.php 
Run Code Online (Sandbox Code Playgroud)

我可以通过使用来访问这些功能

frontend/store/add
frontend/store/manage
......

backend/stats/sales
backend/stats/payments
.....
Run Code Online (Sandbox Code Playgroud)

但我想从网址中取下前端和后端段.

我检查了codeigniter中的路由功能,但据我所知,我需要单独指定每条路由.由于我有大约12个控制器,每个控制器有大约10-15个功能,我可能需要指定路由的每个功能.

有没有其他有效的方法来实现使用路由或任何其他方式?(不使用任何htaccess)

hsu*_*suk 24

做这个:

$route['store/(:any)'] = 'frontend/store/$1';
$route['processing/(:any)'] = 'frontend/processing/$1';
$route['profile/(:any)'] = 'frontend/profile/$1';
Run Code Online (Sandbox Code Playgroud)

后端相同:

$route['backend/(:any)'] = 'backend/authenticate/$1';
Run Code Online (Sandbox Code Playgroud)

您不必在routes.php中为控制器的每个功能创建每个规则,而是如上所述,每个控制器一个规则就足够了.

URI路由:CodeIgniter用户指南

$1表示第一个表达式,这里(:any)是表达式,每个规则可以有多个表达式,表达式表示为$1,$2依此类推.

同样,(:num)将匹配仅包含数字的段,(:any)将匹配包含任何字符的段,(\d+)将匹配任何数字,([a-z]+)将匹配任何alpha文本.

  • (:num)将匹配仅包含数字的段,(:any)将匹配包含任何字符的段,(\ d +)将匹配任何数字,([az] +)将匹配任何alpha文本 (2认同)