sql >> Base de Datos >  >> RDS >> Mysql

Función de modelo de llamada en view codeigniter

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);