2012-03-27 54 views
0

我的路線語言驅動,看起來像這樣mydomain.com/enCodeigniter:我如何創建數據庫驅動的URI?

$route['default_controller'] = "home"; 
$route['404_override'] = ''; 
$route['(\w{2})/(.*)'] = '$2'; 
$route['(\w{2})'] = $route['default_controller']; 

但是我有數據庫的內容,我想是在URI的語言mydomain.com/jp/the後-slug對的一日頁

我有一個表稱爲職位它包含與標題,蛞蝓和語言準備去內容行,但我不完全得到如何編輯我的家控制器來檢查URI是否來自數據庫。

這是我家的控制器方法。

class Home extends CI_Controller { 

    function __construct() 
    { 
    parent::__construct(); 
    } 
    public function index($title = '') { 
     if(strlen($url)) { 
     /* get content by title from DB */ 
     $data['url'] = $url; 
     $this->load->view('user_home', $data); 
     } 
    } 
} 

回答

0

不知道如果我完全理解你的問題,但我認爲要在搜索一個URI你數據庫,這很簡單:

function index() 
{ 
    $needle = $this->uri->segment(2); 
    $this->db->where('slug', $needle); 
    $this->db->from('table_name'); 
    if($this->db->count_all_results() > 0) 
    { //here the uri exists in your database } 
    else 
    { //here don't } 
} 

¿這可能是你需要的嗎?

(當然代碼應該是一個模式,而不是在控制器中,保持笨的MVC)

0

你可以這樣寫在控制器

public function index($title = '') { 

     if(strlen($url)) { 
     /* get content by title from DB */ 
     /* load content view */ 
     } 
    /* load index view */ 

} 

路線

$route['default_controller'] = "home"; 
$route['404_override'] = ''; 
$route['(\w{2})/(:any)'] = $route['default_controller'].'/index/$2'; 
$route['(\w{2})'] = $route['default_controller']; 
+0

我收到了PHP錯誤**消息:未定義的變量:網址** – Tiny 2012-03-27 09:16:34

+0

更新,請檢查再次 – safarov 2012-03-27 09:30:45

+0

謝謝,但它沒有。 $ url沒有被定義。另外,我不想讓它路由到一個名爲/ index/ – Tiny 2012-03-27 09:46:54

相關問題