2012-03-27 43 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

相关问题