我有一个需要从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”。那么为什么这不起作用呢?函数中的参数顺序正确,所以我看不出有什么问题。
答案 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。