CodeIgniter – Llamar un modelo o librería desde una vista

Hay ocasiones que para ahorrar código, necesitaremos llamar a nuestros modelos directamente desde una vista sin pasar por los controladores.

Supongamos, que una de nuestras vistas es la cabecera de nuestra web. Ésta, muestra siempre la misma información.

En nuestra vista, llamémosla cabecera_view.php, insertaremos el siguiente código

1
2
$ci = &get_instance();
$ci->load->model("menu_model");

Con este código dentro de nuestra vista, lo que hacemos es llamar al model “menu_model”.

Ahora ya podemos utilizarlo para mostrar la información:

3
$menuprincipal= $ci->menu_model->menuPrincipal();

Ahora, en la variable ‘$menuprincipal’ tendremos la array devuelta desde la función ‘menuPrincipal()’ del modelo ‘menu_model’.

Así pues, tenemos una vista que muestra nuestra cabera, y que llama a funciones de un modelo concreto.

Información relacionada

5 comentarios

  • JOEL

    HOla muy bueno tu post, tengo una duda, aplique lo que indicas pero al parecer no me funciona

    $ci = &get_instance();
    $ci->load->model('Puentes');
    $resultados=$ci->Puentes->get_evaluaciones_for_report($item->ID_PARTE,$id_puente);
    foreach($resultados->result() as $item1){
    echo $resultados->NOMBRE;
    echo $resultados->VALOR;
    }

    y me da este error:” Fatal error: Call to a member function result() on a non-object in C:\xampp\htdocs\sinp\application\views\reportes\evaluacion…”

    • Hola Joel, sin ver todo el árbol de ficheros que tienes, es difícil averiguar por dónde puede ir la cosa. Según el código que indicas, deberías tener el modelo (fichero .php dentro de la carpeta ‘application/models’) llamado Puentes.php. Si lo que tienes es ‘/Application/models/Puentes_model.php’, debes hacer la llamada $ci->load->model(‘Puentes_model’);
      A parte, revisa que la función a la que llamas es correcta, es accesible y que los parámetros que indicas son correctos.

  • ALDO

    tengo el siguiente problema quiero enviar el resultado de dos consultas en una sola vista:

    function MostrarEESS(){
    $data1[‘eess’]=$this->mostrar_model->Mostrar_EESS();
    $data2[‘usuarios’]=$this->mostrar_model->Mostrar_Usuarios();

    $this->load->view(‘front_end/RegistroUsuario’,$data1,$data2);

    }

    • Roilber Lambert Sánchez

      function MostrarEESS(){
      $data[‘eess’]=$this->mostrar_model->Mostrar_EESS();
      $data[‘usuarios’]=$this->mostrar_model->Mostrar_Usuarios();

      $this->load->view(‘front_end/RegistroUsuario’,$data);

      }

  • Alejandro

    Muchas gracias me funcionó a la perfeccion el codigo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*