2017-06-22 179 views
0

我使用CodeIgniter的框架在我的網絡開發和使用PHP代碼,如下笨URI路由不工作

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

通過圖片ID值,並使用此代碼$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

只是好奇 - 你是說你有$路線[ '賬戶/畫廊/(:NUM)'] =「缺省的/ ?Gallery_controller /視圖id = $ 1' ;加工?或者在您使用初始網址後添加了該路線? – TimBrownlaw

+0

@TimBrownlaw我使用路由'$ route ['account/gallery /(:num)'] ='default/Gallery_controller/view/$ 1';'我的網站的模板可以看到,從數據庫顯示錯誤獲取,因爲我設置讓我的網絡無法獲得圖像ID值 –

+0

@LinundusOndu,檢查我的答案,[它在這裏](https://stackoverflow.com/a/44696387/2679536) –

回答

0

使用正則表達式,而不是:num在route.php

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

而在你的模板文件:

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

然後,您可以直接在您的gallary控制器中查看功能$id

如:

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

畢竟這些努力,最後我得到它與您的解決方案。非常感謝! :) –

+0

隨時幫助CodeIgniter! –

+0

嗨Shaunak,我可以問另一個問題嗎?如果用戶嘗試輸入類似「http:// my-domain-name/account/gallery/view?id =」的任何內容,我該如何將用戶重定向到「http:// my- 1'? –

0

中設定這個網址http://my-domain-name/account/gallery/1在HREF

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

absolutly正確@Reena Mori –

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']; ?>"> 
0

檢查您的配置。PHP

$config['enable_query_strings'] = true; 

$config['enable_query_strings'] = false; 
0

在這試試這個(:any)

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

或者

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

在路線小寫

0

此代碼是使你的URL像http://domain-name/account/gallery/1

試試這個:

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