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 và 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);