0

我的路线是语言驱动的,看起来像这样mydomain.com/en

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

但我有我希望在语言mydomain.com/jp/the-slug-of-a-japanese-page之后的 URI 中的数据库内容

我有一个名为posts的表,它包含标题、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);
       }
     } 
 }
4

2 回答 2

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'];
于 2012-03-27T08:48:42.740 回答
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 }
}

¿ 这可能是您需要的?

(当然该代码应该在模型中,而不是在控制器中,以保留codeigniter的MVC)

于 2012-03-27T10:21:10.373 回答