MVC или не към MVC
Първото нещо, което трябва да отбележа е, че Невъзможно е да се напише класически MVC в PHP . Всъщност MVC-подобните PHP рамки, като CodeIgniter или Yii, имплементират видMVP в който:
- изгледът е пасивен и не знае за модела
- презентаторът (контролерът) променя състоянието на модела, чете информация и я предава на преглед
Кредити на tereško
Подход на CodeIgniter
Въпреки това, особено в CodeIgniter, имате 3 стъпки:
- Създайте модел за запитване през базата данни и връщане на данните (като масив или обект)
- Създайте контролер за зареждане и извлечете резултата от Модела (метод на модела) и предайте върнатите данни на изгледа
- Създайте Изглед и използвайте PHP цикли, за да повторите резултата, изградете HTML.
Събиране на всички
Имайки предвид горния подход, трябва да извлечете резултата от базата данни във вашия модел:
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');
}
}
След това извлечете и предайте резултата в контролера:
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);
}
}
Накрая използвайте върнатите данни в изгледа, за да генерирате списъка:
application/views/product_view.php
// Use $product to display the product.
print_r($product);