MVCまたはMVCではない
最初に注意する必要があるのは、 PHPで従来のMVCを作成することはできません 。実際、CodeIgniterやYiiなどのMVCのようなPHPフレームワークは、一種の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);