2015-09-06 48 views
3

我想開發一個博客網站。這是我的問題:我無法從網址獲取ID。我不能從URL使用codeigniter的ID

使用我的htaccess的(我刪除的index.php),這是我現在的當前鏈接:http://localhost/blogcodeigniter/posts/test_title_id_1

這裏是從控制器我的功能:

public function post_look_up() { 
    $id = $this->uri->segment(3); 
    echo $id; 
} 

這裏是我的路線:

$route['posts/(:any)']='blog/post_look_up'; 
+0

究竟是什麼問題?也許你可以詳細闡述一下當前的具體問題,以及到目前爲止你如何解決這個問題。 – haraldkl

+0

該id應該存儲在url中的$ id中,但它不會,因此,當我回顯$ id時,我沒有看到任何回顯。我知道post_look_up()函數的作用,因爲當我包含$ this-> load-> view('header_view');到功能,我看到我的標題。 –

回答

1

如果你採用這種約定,你必須識別字符串中的最後一個數字。

$segment = $this->uri->segment(2); //or 3 
$post_id = preg_replace('(\d+)$', '', $segment); 

但我不會這樣。我只會根據slug加載帖子,只使用$ this-> uri-> segment(2)從db中獲取帖子。

1

既然你已經重寫你的controller/method你想使用URI類'rsegment()方法

$id = $this->uri->rsegment(3); 

$id = $this->uri->segment(2); 

你可以看到你的新設定的路線將只有2段。 Reference