我有一个网址www.mywebsite.com/store/123456
其中store是我的控制器类,我有一个索引函数,其中我在商店之后得到了值,即123456.但是我无法实现它。
如在网上找到的那样,我尝试将其添加到路由$route['store/(:any)'] = 'store/index';
也尝试了
$route['store/(:any)'] = 'store/index/$1';
但似乎没有用。请帮帮我。
在控制器索引功能中
public function index()
{
echo $this->uri->segment(1);
}
但它不起作用.Pleae帮助
答案 0 :(得分:2)
您正在调用123456()
方法而不是index()
方法,因此您获得了CI 404.
最简单的方法是使用这种路线
$route['store/(:any)'] = 'store/index/$1';
在它的顶部添加参数到你的情况下的索引函数
public function index($parameter)
{
echo $this->uri->segment(2);
}
请注意,我更改了细分参数,请参阅documentation。
使用_remap()
function _remap($parameter){
$this->index($parameter);
}
function index($p)
{
echo $p; //shows 123456
}
答案 1 :(得分:0)
如果我没记错的话:
段(n)在路由发生之前为您提供uri的片段
rsegment(n)为您提供路由后的uri段(如果路由发生或与段相同,如果它没有)
所以/ store / 123456被重新路由到/ store / index / 123456
segment(1) == rsegment(1) == 'store'
rsegment(2) == 'index'
segment(2) == rsegment(3) == '123456'
答案 2 :(得分:0)
路线:
$route['terms_and_conditions'] = 'SO_front/page/1';
控制器:
public function page($id)
{
echo $id;
}
输出: 1
答案 3 :(得分:0)
这里是我针对CI3的解决方案...我更喜欢laravel进行高级路由,orm,restapi,在vuejs中构建。
$route['store/(:any)'] = 'store/index/';
public function your index(){
$parameter=$this->uri->segment(2);
//use parameter for sql query.
}
先说您的路线$route[store/product/update/(:any)]
,然后说$parameter=$this->uri->segment(4)
问题?。如果您打算更改路径名称(包括视图,控制器和自定义路径),则需要更改整个文件代码。