sql >> データベース >  >> RDS >> Mysql

Codeigniter-ルーティングに関するアクセスモデルとデータベース

    提案されたURL構造を実装するには、

    を使用する中央ディスパッチャを1つ作成する必要があります。
    1. 要求されたURLを分析します。
    2. データベースにクエリを実行して、カテゴリを見つけて表示します。
    3. カテゴリが見つからない場合は、テキスト投稿を見つけて表示しようとします。

    コントローラーの仕事のように聞こえます。しかし、どのようにしてすべての要求に応答するコントローラーを作成するのでしょうか。ワイルドカードルーティングの助けを借りて!

    application / config / routers.php

    $route['.*'] = 'default_controller';

    これで、URIに関係なく、すべてのリクエストがDefault_controller.phpにルーティングされます。 。

    しかし、どのメソッドが呼び出されるかを知らずに、どのようにコントローラーを作成するのでしょうか。方法があります:組み込みのコントローラーサービスメソッド_remap

    ドキュメント から :

    だから私はあなたのためにDefault_controllerのコンセプトを想像して作成させました:

    application / controllers / Default_controller.php

    <?php
    defined('BASEPATH') OR exit('No direct script access allowed');
    
    class Default_controller extends CI_Controller {
    
        // Pseudocode ensues 
        public function _remap()
        {
            // www.mydomain.com/(someTextHere)
            $slug = $this->uri->segment(1);
    
            $result = $this->load_data($slug);
    
            echo $result;
        }
    
        private function load_data($slug)
        {
            // Trying to find a category
            $category = $this->category_model->find($slug);
            if($category !== false)
            {
                // Presumably loads view into buffer
                // and returns it to the calling method
                return $this->load_category($category);
            }
    
            Trying to find post
            $post = $this->post_model->find($slug);
            if($post !== false)
            {
                return $this->load_post($post);
            }
    
            // Neither category nor post found
            show_404();
        }
    
        private function load_category($category)
        {
            // http://www.codeigniter.com/user_guide/general/views.html#returning-views-as-data
            return $this->load->view("category", array("category" => $category), true);
        }
    }
    

    注:この回答は、新しくダウンロードした Codeigniter3.0.3




    1. 時間減算形式の結果

    2. node.jsサーバーからローカルホストデータベースに接続できません

    3. データをcsvファイルにエクスポートするストアドプロシージャは、1つのファイルにのみエクスポートします

    4. TSQLでPRINTバッファをフラッシュするにはどうすればよいですか?