我在我的网站开发中使用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
答案 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>