Codeigniter URI路由无法正常工作

时间:2017-06-22 10:03:17

标签: php codeigniter routing uri

我在我的网站开发中使用codeigniter框架,并使用下面的PHP代码传递图像ID的值

<a href="<?php echo base_url('account/gallery/view'); ?>?id=<?php echo $imageDetail['imageId']; ?>">
    <img src="" />
</a>

使用此代码$imageId = $this->input->get('id');

获取控制器的值

使用我使用的get方法,它会显示如下的网址:

http://my-domain-name/account/gallery/view?id=1

但我想显示这样的网址:

http://my-domain-name/account/gallery/1

所以我所做的就是使用此代码在路由器中设置,但它无法正常工作。

$route['account/gallery/(:num)'] = 'default/Gallery_controller/view/$1';

如果我输入http://my-domain-name/account/gallery/1,我的网络仍然可以显示网络模板,但在我从数据库中提取的字段中显示错误,因为无法获取imageId

6 个答案:

答案 0 :(得分:0)

在route.php中使用正则表达式而不是:num

$route['account/gallery/([0-9]+)'] = 'default/Gallery_controller/view/$1';

在您的模板文件中:

<a href="<?php echo base_url('account/gallery/'.$imageDetail['imageId']); ?>">
    <img src="" />
</a>

然后,您可以直接在视图函数$id中的gallary控制器中访问。

例如:

class Gallery extends MY_Controller {
     public function view($id){
       // Your Image ID = $id;
  }
}

答案 1 :(得分:0)

  

在href

中正确设置此网址http://my-domain-name/account/gallery/1
<a href="<?php echo site_url('account/gallery/view'.$imageDetail['imageId']); ?>">
    <img src="" />
</a>   

答案 2 :(得分:0)

替换

<a href="<?php echo base_url('account/gallery/view'); ?>?id=<?php echo $imageDetail['imageId']; ?>">

<a href="<?php echo base_url();?>account/gallery/view/<?php echo $imageDetail['imageId']; ?>">

答案 3 :(得分:0)

检查你的config.php

$config['enable_query_strings'] = true;

$config['enable_query_strings'] = false;

答案 4 :(得分:0)

在此尝试此(:any)

$route['account/gallery/(:any)'] = 'default/gallery_controller/view/$1';

或者

$route['account/gallery/view?(:any)'] = 'default/gallery_controller/view/$1';

在路线小写

答案 5 :(得分:0)

此代码会将您的网址设为http://domain-name/account/gallery/1

试试这个:

<a href="<?php echo base_url();?>account/gallery/view/<?php echo $imageDetail['imageId'];?>">
    <img src="" />
</a>