изменить URL элемента поиска и маршрутизацию в codeigniter - PullRequest
0 голосов
/ 03 апреля 2020

Я хочу изменить URL с маршрутизацией Codeigniter:

вот мой URL:

home/search?location=BD

home/search?location=BD&category[]=123

home/search?location=BD&category[]=123&category[]=124&category[]=125

как выше, но я хочу перенаправить этот URL с

home/BD

home/BD/123

home/BD/123+124+125 

или

home/BD/123/124/125

Мой маршрут. php:

$route['home/(:any)/(:any)'] = 'home/search/$1';

В чем моя проблема на странице route.php

1 Ответ

1 голос
/ 06 апреля 2020

Попробуйте использовать шаблон (.+) на вашем route.php, $1 будет содержать значение location (BD), а $2 будет содержать все параметры после home/BD/ url:

$route['home/(:any)/(.+)'] = 'home/search/$1/$2';

Шаблон (.+) полезен, если вы не знаете, сколько параметров передается, это позволит вам захватить все из них. И, возможно, вам следует использовать & вместо знака + на вашем URL, поскольку знак +, вероятно, по умолчанию запрещен:

home/BD/123&124&125

Тогда вы можете взорвать категории на контроллере:

public function search($location = '', $categories = '')
{
    if (!empty($categories)) {
        $categories = explode('&',$categories);
    }
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...