Codeigniter不从URL中获取参数

时间:2011-08-11 23:51:43

标签: codeigniter codeigniter-url

我有一个需要从CI中提取参数的函数,就像CI应该这样做。但它不是这样做的。我的网址是domain.com/lasers/en/acme。

我的班级激光是:

class Lasers extends CI_Controller {

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

        $this->load->model('products_model');
        $this->load->model('common_model');
        $this->load->model('select_country_model'); 
        $this->load->model('markets_materials_model');  
    }


function index($lang = NULL, $laser = NULL) 
{   
    $query = $this->products_model->get_product_content($laser, $lang);
}

模型在构造函数中加载。我需要的$ lang是“en”,我需要的$ laser是“acme”。那么为什么这不起作用呢?函数中的参数顺序正确,所以我看不出有什么问题。

2 个答案:

答案 0 :(得分:1)

默认情况下,您无法将参数传递给控制器​​的index方法

如果你转到domain.com/lasers/en/acme,它会在lasers控制器中查找名为en的方法(不存在)并尝试传递单个参数{ {1}}到它

有一些解决方案,最简单的方法是使用不同的方法(而不是索引),然后使用路由使URL工作。

将这样的内容添加到acme

config/routes.php

然后使用这样的方法代替$route['^lasers/(:any)/(:any)'] = "lasers/get_products/$1/$2";

index

..或者您可以使用_remap覆盖默认行为

答案 1 :(得分:0)

如果你写“domain.com/lasers/index/en/acme”吗?

如果您编写domain.com/lasers/en/acme,它将查找“En”函数,$ lang为“acme”,$ laser为剩余NULL。