На данный момент я пытаюсь это:
Как существуют подкатегории, количество категорий в пути является переменным, как URL не является бесконечным, я определил максимальное количество категорий в пути, и я включаю этот код в "application/config/routes.php"
:
$route['(:any)'] = function ($param0="",$param1="",$param2="",$param3="",$param4="",$param5=""){
if($param0 == "user" || $param0 == "home" || $param0 == "post" || $param0 == "user") return $param0;
else return 'route';
};
$route['(:any)/(:any)'] = function ($param0="",$param1="",$param2="",$param3="",$param4="",$param5=""){
if($param0 == "user" || $param0 == "home" || $param0 == "post" || $param0 == "user") return $param0.'/'.$param1;
else return 'route';
};
$route['(:any)/(:any)/(:any)'] = function ($param0="",$param1="",$param2="",$param3="",$param4="",$param5=""){
if($param0 == "user" || $param0 == "home" || $param0 == "post" || $param0 == "user") return $param0.'/'.$param1.'/'.$param2;
else return 'route';
};
$route['(:any)/(:any)/(:any)/:(any)'] = function ($param0="",$param1="",$param2="",$param3="",$param4="",$param5=""){
if($param0 == "user" || $param0 == "home" || $param0 == "post" || $param0 == "user") return $param0.'/'.$param1.'/'.$param2.'/'.$param3;
else return 'route';
};
$route['(:any)/(:any)/(:any)/(:any)/(:any)'] = function ($param0="",$param1="",$param2="",$param3="",$param4="",$param5=""){
if($param0 == "user" || $param0 == "home" || $param0 == "post" || $param0 == "user") return $param0.'/'.$param1.'/'.$param2.'/'.$param3.'/'.$param4;
else return 'route';
};
$route['(:any)/(:any)/(:any)/(:any)/(:any)/(:any)'] = function ($param0="",$param1="",$param2="",$param3="",$param4="",$param5=""){
if($param0 == "user" || $param0 == "home" || $param0 == "post" || $param0 == "user") return $param0.'/'.$param1.'/'.$param2.'/'.$param3.'/'.$param4.'/'.$param5;
else return 'route';
};
Это очень уродливый код, но функциональный. Я пытаюсь улучшить его с помощью цикла, который будет устанавливать максимум категорий с переменной, но у меня есть проблемы с переменными внутри функции обратного вызова.
Пример:
$i = 4;
$route['(:any)'] = function ($param0="",$param1="",$param2="",$param3="",$param4="",$param5=""){
global $i;
if($param0 == "user" || $param0 == "home" || $param0 == "post" || $param0 == "user") return $param0;
else return 'route';
};
Внутри функции обратного вызова $ i пусто,