Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Codeigniter - Mô hình truy cập và cơ sở dữ liệu trên định tuyến

Để triển khai cấu trúc url được đề xuất, chúng tôi phải tạo một điều phối viên trung tâm sẽ

  1. Phân tích URL được yêu cầu.
  2. Sẽ truy vấn cơ sở dữ liệu để tìm và hiển thị danh mục.
  3. Nếu không tìm thấy danh mục nào, nó sẽ cố gắng tìm và hiển thị bài đăng văn bản.

Nghe giống như công việc của một người điều khiển. Nhưng làm thế nào để chúng tôi tạo ra một bộ điều khiển đáp ứng mọi yêu cầu? Với sự trợ giúp của định tuyến ký tự đại diện!

application / config / route.php

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

Giờ đây, mọi yêu cầu, bất kể URI, sẽ được chuyển đến Default_controller.php .

Nhưng làm thế nào để chúng ta viết controller mà không biết phương thức sẽ được gọi là gì? Có một cách:phương thức dịch vụ bộ điều khiển tích hợp sẵn _remap .

Từ tài liệu :

Vì vậy, tôi đã tự tưởng tượng và tạo ra một khái niệm Default_controller cho bạn:

ứng dụng / bộ điều khiển / 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);
    }
}

Lưu ý:đã kiểm tra câu trả lời này trên Codeigniter 3.0.3 mới được tải xuống




  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 Inner Join bảng dựa trên giá trị cột

  2. truy vấn tham số mysql trong ASP.NET

  3. Cách thay thế một phần của chuỗi trong MySQL

  4. Làm cách nào để thực hiện THAM GIA NGOÀI TRỜI ĐẦY ĐỦ trong MySQL?

  5. Cách giữ lại phản ứng dữ dội khi thoát khỏi trích dẫn trong MySQL - QUOTE ()