Codeigniter路由无限参数

Kie*_*ran 1 parameters uri routes codeigniter url-routing

我目前在我的CodeIgniter路由文件中有这个.它将任何带URI的地图映射api/controller/functioncontroller/api_function.

$route['api/(:any)/(:any)/(:any)/(:any)/(:any)/(:any)'] = '$1/api_$2/$3/$4/$5/$6';
$route['api/(:any)/(:any)/(:any)/(:any)/(:any)'] = '$1/api_$2/$3/$4/$5';
$route['api/(:any)/(:any)/(:any)/(:any)'] = '$1/api_$2/$3/$4';
$route['api/(:any)/(:any)/(:any)'] = '$1/api_$2/$3';
$route['api/(:any)/(:any)'] = '$1/api_$2';
Run Code Online (Sandbox Code Playgroud)

如您所见,这不是很有效.我需要一个不同的路线,具体取决于提供的参数数量.有没有办法自动传递所有参数?所以假设,我正在寻找像......

$route['api/(:any)/(:any)/unlimited parameters'] = '$1/api_$2/unlimited parameters';

谢谢!

lan*_*ons 8

试试这个:

$route['api/([^/]*)/([^/]*)/(.*)'] = '$1/api_$2/$3';
Run Code Online (Sandbox Code Playgroud)

它基本上检查两个段(任何字符,但斜杠),然后任何后续作为参数附加到您的控制器功能.

这与没有参数的路线不匹配,但如果需要处理这种情况则不难做到.