MVC या MVC को नहीं
पहली बात जो मुझे ध्यान रखनी चाहिए वह यह है कि PHP में शास्त्रीय MVC लिखना असंभव है . वास्तव में कोडइग्निटर या वाईआई जैसे एमवीसी जैसे PHP ढांचे एक प्रकार का एमवीपी जिसमें:
- दृश्य निष्क्रिय है और मॉडल से अनजान है
- प्रस्तुतकर्ता (नियंत्रक) मॉडल की स्थिति बदलता है, जानकारी पढ़ता है और उसे देखने के लिए भेजता है
क्रेडिट tereško
कोडइग्निटर दृष्टिकोण
हालांकि, विशेष रूप से कोडइग्निटर में, आपके पास 3 चरण हैं:
- एक मॉडल बनाएं डेटाबेस के माध्यम से क्वेरी करने के लिए और डेटा वापस करने के लिए (एक सरणी या वस्तु के रूप में)
- एक नियंत्रक बनाएं लोड करने के लिए और परिणाम प्राप्त करें मॉडल . से (मॉडल की एक विधि), और लौटाए गए डेटा को दृश्य में पास करें
- एक दृश्य बनाएं और परिणाम को प्रतिध्वनित करने के लिए PHP लूप का उपयोग करें, HTML बनाएं।
सब को एक साथ लाना
उपरोक्त दृष्टिकोण को ध्यान में रखते हुए, आपको अपने मॉडल में डेटाबेस से परिणाम प्राप्त करने की आवश्यकता है:
एप्लिकेशन/मॉडल/उत्पाद.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');
}
}
फिर नियंत्रक के भीतर परिणाम प्राप्त करें और पास करें:
एप्लिकेशन/नियंत्रक/उत्पाद.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);
}
}
अंत में, सूची बनाने के लिए, दृश्य में दिए गए डेटा का उपयोग करें:
आवेदन/दृश्य/product_view.php
// Use $product to display the product.
print_r($product);