MVC eller ej til MVC
Den første ting jeg bør bemærke er, at Det er umuligt at skrive klassisk MVC i PHP . Faktisk implementerer de MVC-lignende PHP-frameworks såsom CodeIgniter eller Yii en slags MVP hvori:
- visningen er passiv og uvidende om modellen
- præsentant (controller) ændrer modeltilstand, læser information og sender den til visning
Kredit til tereško
CodeIgniter-tilgang
Men især i CodeIgniter har du 3 trin:
- Opret en model at forespørge gennem databasen og returnere dataene (som et array eller objekt)
- Opret en Controller for at indlæse og hent resultatet fra modellen (en metode af modellen), og videregive de returnerede data til visningen
- Opret en visning og brug PHP-løkker til at ekko resultatet, byg HTML.
Få det hele sammen
I betragtning af ovenstående tilgang skal du hente resultatet fra databasen i din model:
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');
}
}
Hent og send derefter resultatet i controlleren:
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);
}
}
Brug endelig de returnerede data i visningen til at generere listen:
application/views/product_view.php
// Use $product to display the product.
print_r($product);