在 codeigniter 中更改搜索项 url 和路由

change search item url and routing in codeigniter

我想用 Codeigniter 路由更改 URL:

这是我的 url:

home/search?location=BD

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

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

如上 url 但我想将此 url 路由为

home/BD

home/BD/123

home/BD/123+124+125 

home/BD/123/124/125

我的route.php:

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

我的 route.php 页面有什么问题?

尝试在 route.php 上使用 (.+) 模式,</code> 将包含 <code>location 值 (BD) 和 </code> 将包含 <code>home/BD/ url :

之后的每个参数
$route['home/(:any)/(.+)'] = 'home/search//';

如果您不知道传递了多少参数,(.+) 模式很有用,它可以让您捕获所有参数。也许您应该使用 & 代替 url 上的 + 符号,因为默认情况下可能不允许使用 + 符号:

home/BD/123&124&125

然后你可以在控制器上展开类别:

public function search($location = '', $categories = '')
{
    if (!empty($categories)) {
        $categories = explode('&',$categories);
    }
    ...
}