Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/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 URL函数段作为查询字符串_Php_Codeigniter_Uri_Segment_Url Mapping - Fatal编程技术网

Php CodeIgniter URL函数段作为查询字符串

Php CodeIgniter URL函数段作为查询字符串,php,codeigniter,uri,segment,url-mapping,Php,Codeigniter,Uri,Segment,Url Mapping,在不改变CodeIgniter的整个配置的情况下,有没有办法将函数的URI段($this->URI->segment(2))作为常规查询字符串而不是直接映射到函数 例如,我将被迫使用如下URL: http://localhost/books/functionName/bookNumber 我希望在控制器名称(图书)后面有图书编号: http://localhost/books/bookNumber如果我有这样的URL,它会将书号映射到函数名。您可以使用CodeIgniter实现所需的URL格式

在不改变CodeIgniter的整个配置的情况下,有没有办法将函数的URI段(
$this->URI->segment(2)
)作为常规查询字符串而不是直接映射到函数

例如,我将被迫使用如下URL:

http://localhost/books/functionName/bookNumber
我希望在控制器名称(图书)后面有图书编号:


http://localhost/books/bookNumber
如果我有这样的URL,它会将书号映射到函数名。

您可以使用CodeIgniter实现所需的URL格式

如果将以下路由添加到
application/config/routes.php
,则输入的与左侧路由匹配的任何URL都将映射到右侧的控制器/函数:

$route['books/(:num)'] = "books/functionName/$1";
这将映射一个URL,如
http://localhost/books/123
,到
书籍
控制器中的
函数名
函数,将
123
作为参数传递


这假设您的“图书编号”始终是数字(它不适用于字符串),因为
(:num)
将只匹配包含数字的片段。

没问题@polymorph!如果你觉得答案有用,请考虑接受。是否要将查询字符串传递给函数?如果是,请向函数添加第二个参数并添加此路由:
$route['welcome/(:num)/(:any)']=“welcome/functionName/$1/$2”在答案中的一个之后。我在文档中找到了它,非常感谢您的回答。