Codeigniter未从URL获取参数
我有一个函数,需要像CI应该做的那样从URL中提取参数。但它没有这样做。我的URL是domain.com/lasers/en/acme 我的课程是:Codeigniter未从URL获取参数,codeigniter,codeigniter-url,Codeigniter,Codeigniter Url,我有一个函数,需要像CI应该做的那样从URL中提取参数。但它没有这样做。我的URL是domain.com/lasers/en/acme 我的课程是: class Lasers extends CI_Controller { function __construct() { parent::__construct(); $this->load->model('products_model'); $this->lo
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”。那么这为什么不起作用呢?函数中的参数顺序正确,因此我看不出有什么问题。如果您编写“domain.com/lasers/index/en/acme”是否有效
如果您编写domain.com/lasers/en/acme,它将查找“en”函数,$lang为“acme”,而$laser为空。默认情况下,您不能将参数传递给控制器的
索引方法
如果您访问domain.com/lasers/en/acme
,它将在lasers
控制器中查找名为en
的方法。。(不存在)并尝试向其传递单个参数acme
有一些解决方案,可能最简单的是使用不同的方法(不是索引),然后使用路由使URL工作
将类似的内容添加到config/routes.php
$route['^lasers/(:any)/(:any)'] = "lasers/get_products/$1/$2";
然后使用这样的方法而不是索引:
function get_products($lang = NULL, $laser = NULL) {
$query = $this->products_model->get_product_content($laser, $lang);
}
。。或者您可以使用覆盖默认行为当您通过“domain.com/lasers/en/acme”访问时,它会给出哪个错误?它是否进入索引功能?您是否使用任何CI路由?如何访问此路由?你的url是什么?另外,你是否在config/routes.php
中对路由文件进行了更改?嗨,这是“starts with”的正则表达式,以防出于某种原因,你有一个名为“biglasers”或“my_lasers”的控制器,使其与那些控制器不匹配