MVC oder nicht zu MVC
Das erste, was ich beachten sollte, ist, dass Es ist unmöglich, klassisches MVC in PHP zu schreiben . Tatsächlich implementieren die MVC-ähnlichen PHP-Frameworks wie CodeIgniter oder Yii eine Art MVP wobei:
- view ist passiv und kennt das Modell nicht
- Moderator (Controller) ändert Zustand des Modells, liest Informationen und gibt sie zur Ansicht weiter
Dank an tereško
CodeIgniter-Ansatz
Allerdings haben Sie insbesondere in CodeIgniter 3 Schritte:
- Erstellen Sie ein Modell um die Datenbank abzufragen und die Daten (als Array oder Objekt) zurückzugeben
- Erstellen Sie einen Controller zu laden und das Ergebnis abrufen aus dem Modell (eine Methode des Modells) und übergibt die zurückgegebenen Daten an die Ansicht
- Erstellen Sie eine Ansicht und verwenden Sie PHP-Schleifen, um das Ergebnis wiederzugeben, erstellen Sie den HTML-Code.
Alle zusammenkommen
In Anbetracht des obigen Ansatzes müssen Sie das Ergebnis aus der Datenbank in Ihrem Modell abrufen:
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');
}
}
Holen Sie dann das Ergebnis und übergeben Sie es innerhalb des Controllers:
application/controllers/products.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);
}
}
Verwenden Sie schließlich die zurückgegebenen Daten in der Ansicht, um die Liste zu generieren:
application/views/product_view.php
// Use $product to display the product.
print_r($product);