【问题标题】:CodeIgniter Route pass param in default route默认路由中的 CodeIgniter Route 传递参数
【发布时间】:2018-05-04 09:42:50
【问题描述】:
假设我开发了一个网站 www.example.com,
现在我想在域名之后传递一个参数。例如www.example.com/param。这可能吗?
我的默认路线
【问题讨论】:
标签:
.htaccess
codeigniter
routes
【解决方案1】:
您可以将参数传递给默认路由,如下所示。
routes.php
$route['default_controller'] = 'pages';
$route['about'] = 'pages/about';
$route['(.*)'] = 'pages';
你应该在代码的最后一行调用$route['(.*)'],否则如果你在浏览器中输入www.example.com/about 关于页面 URL,它将重定向到default controller方法。
$route['(.*)'] : 这意味着你可以在 URL 中传递无限的参数
使用可以使用$this->uri->segment()或$this->uri->segment_array()来收集函数中的参数
例子:
如果你的网址是这样的
www.example.com/param1/param2/param3/param4
public function index(){
$param1 = $this->uri->segment(1); // return `param1`
$param2 = $this->uri->segment(2); // return `param2`
$param3 = $this->uri->segment(3); // return `param3`
$param4 = $this->uri->segment(4); // return `param4`
// OR
$paramArray = $this->uri->segment_array(4); // all parameter in Array format
}