Все, что угодно возможно с использованием маршрутов CodeIgniter. Его все так, как вы его кодируете. Маршрутизация в CI составляет действительно гибкий. Вы можете использовать регулярные выражения, помимо стандартных подстановочных знаков CI (: any) (: num). Вы даже можете добавить префиксы или суффиксы переменного пути, если вы должны, как:
$route['store/(:any)'] = "redircontroller/redirfunction/$1";
// for instance the namelookup method of the mystores controller
$route['stores/products/(:any)'] = "mystores/namelookup/$1";
Вы получаете второй параметр (и третий и так далее), определив переменные в значении маршрута, которые получают передаются в контроллер метод, который вы определяете. Если «продукты» в вашем новом URL-адресе также являются вариантом, вы должны вместо этого использовать вместо этого выражение. Вы также можете вывести параметры из URL-адреса, используя класс URI ($ this-> uri-> segment (n)).
Однако вы не выполняете операции с базами данных в route.php. Вы выполняете операции с базой данных в контроллере, к которому вы направляетесь. Я предполагаю, что вам придется сопоставлять идентификатор магазина, используя все, что используется в URL-адресе в запросе. В любом случае путь, которым вы пользуетесь файлом маршрутов, - это путь, который пользователь увидит. Для того, чтобы сделать редирект вы должны принять исходный путь, а затем перенаправить пользователя на новый путь, как так:
// in some controller that's attached to the original url
public function redirfunct($var){
$this->load->helper('url');
redirect(base_url('stores/products/' . $var));
}
Я надеюсь, что это поможет.
В этом случае я не получаю значение '$ mix'. – Stranger
Вы добавили маршрут? Если вы это сделали, вы сможете получить значение '$ mix'. Попробуйте 'var_dump()' it? –
Когда я делаю это, я получаю значение $ 1 только для значения mix, а не для правильного значения. – Stranger