Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CodeIgniter路由2参数_Php_Codeigniter_Routes - Fatal编程技术网

Php CodeIgniter路由2参数

Php CodeIgniter路由2参数,php,codeigniter,routes,Php,Codeigniter,Routes,我曾尝试使用routes创建一个应用程序,但当我传递2个参数时,什么也没发生。该函数未被激发 当我使用1参数时,它可以工作: $route['category_(:any)'] = 'category/categoryDetails/$1'; $route['category_(:any)/(:any)'] = 'category/categoryDemandeDetails/$1/$2'; 在我的控制器中: public function categoryDetails($name){

我曾尝试使用routes创建一个应用程序,但当我传递2个参数时,什么也没发生。该函数未被激发

当我使用1参数时,它可以工作:

$route['category_(:any)'] = 'category/categoryDetails/$1';
$route['category_(:any)/(:any)'] = 'category/categoryDemandeDetails/$1/$2';
在我的控制器中:

public function categoryDetails($name){
    $data = array('page' => 'category', 'categoryName' => $name);
    $this->load->view('category', $data);
}
public function categoryDemandeDetails($name, $demande){
    $data = array('page' => 'category',  'categoryName' => $name);
    $this->load->view('demande', $data);
}

您能帮助我吗?

第一条路由将捕获所有以类别\开头的请求,包括任何应该路由到第二条路由的请求。这是因为:any将捕获任何内容,包括多个参数,因此第二条路由永远不会按此顺序使用

路由将按定义的顺序运行。较高的路线将始终优先于较低的路线

您只需更改路线的顺序:

$route['category_(:any)/(:any)'] = 'category/categoryDemandeDetails/$1/$2';
$route['category_(:any)'] = 'category/categoryDetails/$1';

如果交换这些路由的顺序,将第一个路由移到第二个路由的下方,会发生什么情况?这很有效。非常感谢你