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に入れたいデータベースコンテンツがあります。

postというテーブルがあり、タイトル、スラッグ、言語を含むコンテンツの行が用意されていますが、ホームコントローラーを編集して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 に答える