MVC lub nie do MVC
Pierwszą rzeczą, na którą powinienem zwrócić uwagę, jest to, że Nie można napisać klasycznego MVC w PHP . W rzeczywistości frameworki PHP podobne do MVC, takie jak CodeIgniter lub Yii, implementują rodzaj MVP w którym:
- widok jest pasywny i nieświadomy modelu
- prezenter (kontroler) zmienia stan modelu, odczytuje informacje i przekazuje je do widoku
Uznania dla tereško
Podejście CodeIgniter
Jednak, szczególnie w CodeIgniterze, masz 3 kroki:
- Utwórz model przeszukiwać bazę danych i zwracać dane (jako tablicę lub obiekt)
- Utwórz kontroler załadować i pobierz wynik z Modelu (metoda Modelu) i przekazuje zwrócone dane do widoku
- Utwórz widok i użyj pętli PHP, aby wyświetlić wynik, zbuduj HTML.
Wszystko razem
Biorąc pod uwagę powyższe podejście, musisz pobrać wynik z bazy danych w swoim modelu:
aplikacja/modele/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');
}
}
Następnie pobierz i przekaż wynik w kontrolerze:
aplikacja/kontrolery/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);
}
}
Na koniec użyj zwróconych danych w widoku, aby wygenerować listę:
aplikacja/widoki/product_view.php
// Use $product to display the product.
print_r($product);