【问题标题】:change search item url and routing in codeigniter在 codeigniter 中更改搜索项 url 和路由
【发布时间】:2020-07-15 06:50:19
【问题描述】:

我想用 Codeigniter 路由更改 URL:

这是我的网址:

home/search?location=BD

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

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

像上面的网址,但我想用这个网址路由

home/BD

home/BD/123

home/BD/123+124+125 

home/BD/123/124/125

我的route.php

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

route.php 页面有什么问题?

【问题讨论】:

    标签: php codeigniter url routing


    【解决方案1】:

    尝试在route.php 上使用(.+) 模式,$1 将包含location 值 (BD),$2 将包含home/BD/ url 之后的所有参数:

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

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

    home/BD/123&124&125
    

    然后你可以分解控制器上的类别:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-15
      相关资源
      最近更新 更多