Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

कोडनिर्देशक - रूटिंग पर एक्सेस मॉडल और डेटाबेस

प्रस्तावित यूआरएल संरचना को लागू करने के लिए, हमें एक केंद्रीय प्रेषक बनाना होगा जो

  1. अनुरोधित URL का विश्लेषण करें।
  2. श्रेणी को खोजने और प्रदर्शित करने के लिए डेटाबेस को क्वेरी करेगा।
  3. यदि कोई श्रेणी नहीं मिली तो यह टेक्स्ट पोस्ट को खोजने और प्रदर्शित करने का प्रयास करेगा।

नियंत्रक के लिए नौकरी की तरह लगता है। लेकिन हम एक नियंत्रक कैसे बनाते हैं जो हर अनुरोध का जवाब देता है? वाइल्डकार्ड रूटिंग की सहायता से!

एप्लिकेशन/कॉन्फ़िगरेशन/रूट्स.php

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

अब हर अनुरोध, यूआरआई पर ध्यान दिए बिना, Default_controller.php . पर भेजा जाएगा .

लेकिन हम यह जाने बिना नियंत्रक कैसे लिखेंगे कि किस विधि को बुलाया जाएगा? एक तरीका है:अंतर्निहित नियंत्रक सेवा विधि _remap

दस्तावेज़ से :

इसलिए मैंने खुद को आपके लिए Default_controller की कल्पना करने और एक अवधारणा बनाने दिया है:

एप्लिकेशन/नियंत्रक/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);
    }
}

नोट:हाल ही में डाउनलोड किए गए Codeigniter 3.0.3




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL पंक्ति प्रारूप:निश्चित और गतिशील के बीच अंतर?

  2. तालिका का नाम अपर केस में बदलें

  3. MySQL के विरुद्ध हाइबरनेट इकाई में मॉडलिंग UUID

  4. MySQL से मौजूदा मान के आधार पर अगली अल्फा-न्यूमेरिक आईडी कैसे प्राप्त करें

  5. एसक्यूएल (MySQL) में किसी विशेष क्षेत्र पर राउंड रॉबिन ऑर्डर करने का कोई तरीका है?