MVC of niet naar MVC
Het eerste wat ik moet opmerken is dat Het is onmogelijk om klassieke MVC in PHP te schrijven . In feite implementeren de MVC-achtige PHP-frameworks zoals CodeIgniter of Yii soort van MVP waarin:
- weergave is passief en kent geen model
- presentator (controller) verandert status van model, leest informatie en geeft deze door aan weergave
Credits voor tereško
CodeIgniter-aanpak
Met name in CodeIgniter heb je echter 3 stappen:
- Maak een Model om door de database te zoeken en de gegevens te retourneren (als een array of object)
- Maak een Controller om te laden en het resultaat ophalen van het Model (een methode van het Model), en geef de geretourneerde gegevens door aan de weergave
- Maak een weergave en gebruik PHP-loops om het resultaat weer te geven, bouw de HTML.
Allemaal samenkomen
Gezien de bovenstaande benadering, moet u het resultaat uit de database in uw model halen:
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');
}
}
Haal het resultaat dan op en geef het door in de Controller:
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);
}
}
Gebruik ten slotte de geretourneerde gegevens in de weergave om de lijst te genereren:
application/views/product_view.php
// Use $product to display the product.
print_r($product);