【问题标题】:URL routing with codeigniter使用 codeigniter 进行 URL 路由
【发布时间】:2014-03-11 23:52:45
【问题描述】:

我有一个名为 search 的控制器。如果用户键入sitename.com/search,Codeigniter 以下列方式工作,它会点击search 控制器并运行index 函数。

如果用户随后键入sitename.com/search/cars,控制器将在search 控制器中查找函数cars

但是我想要一个名为lookup() 的通用函数,它采用URL 字符串中的第二个参数。

例如:sitename.com/search/electronics [电子是 返回] sitename.com/search/奶酪 [奶酪被退回]

然后它会使用关键字进行数据库查找,如果找到匹配项则加载页面。在汽车的情况下,它将是sitename.com/search/cars,如果没有匹配则重定向到sitename.com/search/error

是否可以修改我的控制器来处理这样的请求?没有指定所有可能的路线?

$route['Cars'] = 'sitename.com/search/Cars';  
$route['Cheese'] = 'sitename.com/search/Cheese';  
$route['Electronics'] = 'sitename.com/search/Electronics';  

搜索控制器:

    <?php
    class Search extends CI_Controller {


     public function __construct()
           {
                parent::__construct();

        $this->load->helper('url');

//parse URL: run lookup() function then redirect to page if valid return


           }


        public function index()
        {
        //check for url string to see what set or collection to load:

        }

       public function lookup()
       {

       }


    }
    ?>

【问题讨论】:

    标签: php codeigniter search


    【解决方案1】:

    在路线中

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

    在控制器中

            public function index($value)
        {
            //$value = $1
    
        }
    

    【讨论】:

    • 当我没有任何东西可以传递给 search/ 并且只想要默认页面时会发生什么,它不会引发错误吗?
    • 更改为 public function index($value = NULL) 为默认情况工作现在欢呼。
    猜你喜欢
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    • 2017-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-09
    相关资源
    最近更新 更多