MVC nebo ne MVC
První věc, kterou bych měl poznamenat, je, že V PHP není možné napsat klasické MVC . Ve skutečnosti PHP frameworky podobné MVC, jako je CodeIgniter nebo Yii, implementují druh MVP ve kterém:
- pohled je pasivní a nezná model
- prezentátor (řadič) mění stav modelu, čte informace a předává je k zobrazení
Kredity pro tereško
Přístup CodeIgniter
Zejména v CodeIgniter však máte 3 kroky:
- Vytvořte Model dotazovat se přes databázi a vracet data (jako pole nebo objekt)
- Vytvořte Ovladač načíst a načtěte výsledek z Modelu (metoda modelu) a předá vrácená data zobrazení
- Vytvořte Zobrazení a pomocí smyček PHP ozvěte výsledek, vytvořte HTML.
Dejte se všichni dohromady
Vzhledem k výše uvedenému přístupu je třeba načíst výsledek z databáze ve vašem modelu:
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');
}
}
Poté načtěte a předejte výsledek v ovladači:
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);
}
}
Nakonec použijte vrácená data v pohledu k vygenerování seznamu:
application/views/product_view.php
// Use $product to display the product.
print_r($product);