MVC o no a MVC
Lo primero que debo tener en cuenta es que Es imposible escribir MVC clásico en PHP . De hecho, los marcos PHP similares a MVC, como CodeIgniter o Yii, implementan una especie de MVP en el que:
- la vista es pasiva y desconoce el modelo
- el presentador (controlador) cambia el estado del modelo, lee la información y la pasa a ver
Créditos a tereško
Enfoque CodeIgniter
Sin embargo, particularmente en CodeIgniter, tiene 3 pasos:
- Crear un modelo para consultar a través de la base de datos y devolver los datos (como una matriz u objeto)
- Crear un Controlador para cargar y obtener el resultado del Modelo (un método del Modelo), y pasar los datos devueltos a la vista
- Crear una Vista y use bucles PHP para repetir el resultado, construya el HTML.
Reuniéndose todos
Teniendo en cuenta el enfoque anterior, debe obtener el resultado de la base de datos en su Modelo:
aplicación/modelos/producto.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');
}
}
Luego busque y pase el resultado dentro del Controlador:
aplicación/controladores/productos.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);
}
}
Finalmente, use los datos devueltos en la vista para generar la lista:
aplicación/vistas/vista_producto.php
// Use $product to display the product.
print_r($product);