Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Codeigniter - Model Akses Dan Basis Data pada Perutean

Untuk menerapkan struktur url yang diusulkan, kita harus membuat satu operator pusat yang akan

  1. Analisis URL yang diminta.
  2. Akan query database untuk menemukan dan menampilkan kategori.
  3. Jika tidak ada kategori yang ditemukan, ia akan mencoba mencari dan menampilkan postingan teks.

Kedengarannya seperti pekerjaan untuk pengontrol. Tetapi bagaimana kita membuat pengontrol yang merespons setiap permintaan? Dengan bantuan perutean wildcard!

application/config/routes.php

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

Sekarang setiap permintaan, terlepas dari URI, akan dirutekan ke Default_controller.php .

Tapi bagaimana kita menulis controller tanpa mengetahui metode apa yang akan dipanggil? Ada caranya:metode layanan pengontrol bawaan _remap .

Dari dokumen :

Jadi saya membiarkan diri saya berfantasi dan membuat konsep Default_controller untuk Anda:

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);
    }
}

Catatan:menguji jawaban ini pada 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. Lewati parameter ke baris perintah skrip MySQL

  2. Kesalahan saat menyambung ke database:(menggunakan kelas org.gjt.mm.mysql.Driver) Pernyataan (1) tidak memiliki kursor terbuka

  3. Apa SQL Server Equivalent dari ELT() di MySQL?

  4. Bagaimana cara menyalin tabel database dan setiap record dari satu server database ke server database lain di PHP MYSQL ?>

  5. MySQL pilih/masukkan/perbarui, apakah urutan kolom penting?