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

Gọi chức năng mô hình trong chế độ xem codeigniter

MVC hoặc không MVC

Điều đầu tiên tôi cần lưu ý là Không thể viết MVC cổ điển bằng PHP . Trên thực tế, các khung PHP giống MVC như CodeIgniter hoặc Yii triển khai loại MVP trong đó:

  • chế độ xem thụ động và không biết về mô hình
  • người trình bày (người điều khiển) thay đổi trạng thái của mô hình, đọc thông tin và chuyển nó để xem

Tín dụng cho tereško

Phương pháp tiếp cận CodeIgniter

Tuy nhiên, đặc biệt trong CodeIgniter, bạn có 3 bước:

  • Tạo Mô hình để truy vấn thông qua cơ sở dữ liệu và trả về dữ liệu (dưới dạng một mảng hoặc đối tượng)
  • Tạo Bộ điều khiển để tải tìm nạp kết quả từ Mô hình (một phương thức của Mô hình) và chuyển dữ liệu trả về vào chế độ xem
  • Tạo Chế độ xem và sử dụng các vòng lặp PHP để lặp lại kết quả, xây dựng HTML.

Kết hợp tất cả lại với nhau

Xem xét cách tiếp cận ở trên, bạn cần tìm nạp kết quả từ cơ sở dữ liệu trong Mô hình của bạn:

application / models / product.php

class Product extends CI_Model
{
    public function get_product($product_id)
    {
        $this->db->select('*')->from('products');
        $this->db->where('product_id', $product_id);
        $this->db->join('versions', 'versions.product_id = products.product_id');
        $query=$this->db->get();
        return $query->first_row('array');
    }
}

Sau đó tìm nạp và chuyển kết quả trong Bộ điều khiển:

ứng dụng / bộ điều khiển / sản phẩm.php

class Products extends CI_Controller
{
    public function view($product_id)
    {
        $this->load->model('product');
        // Fetch the result from the database
        $data['product'] = $this->product->get_product($product_id);
        // Pass the result to the view
        $this->load->view('product_view', $data);
    }
}

Cuối cùng, sử dụng dữ liệu trả về trong dạng xem, để tạo danh sách:

application / views / product_view.php

// Use $product to display the product.
print_r($product);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để tách các loại ký tự (â? ²s) này bằng PHP?

  2. Trong SQL / MySQL, sự khác biệt giữa ON và WHERE trong một câu lệnh nối là gì?

  3. Trong các truy vấn MySQL, tại sao lại sử dụng join thay vì ở đâu?

  4. Loại bảng đã sử dụng không hỗ trợ chỉ mục SPATIAL

  5. MySQL VARCHAR (255) UTF8 quá dài đối với khóa, nhưng độ dài tối đa là 1000 byte