MVC eller inte till MVC
Det första jag bör notera är att Det är omöjligt att skriva klassisk MVC i PHP . Faktum är att de MVC-liknande PHP-ramverken som CodeIgniter eller Yii implementerar slags MVP där:
- vyn är passiv och omedveten om modellen
- presentatör (kontrollant) ändrar modelltillstånd, läser information och skickar den till visning
Krediter till tereško
CodeIgniter Approach
Men, särskilt i CodeIgniter, har du tre steg:
- Skapa en modell för att söka igenom databasen och returnera data (som en array eller objekt)
- Skapa en kontrollant för att ladda och hämta resultatet från modellen (en metod för modellen) och skicka den returnerade data till vyn
- Skapa en vy och använd PHP-loopar för att återskapa resultatet, bygg HTML.
Ta ihop allt
Med tanke på ovanstående tillvägagångssätt måste du hämta resultatet från databasen i din modell:
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');
}
}
Hämta och skicka sedan resultatet i 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);
}
}
Använd slutligen de returnerade uppgifterna i vyn för att generera listan:
application/views/product_view.php
// Use $product to display the product.
print_r($product);