Foros del Web » Programando para Internet » PHP » CodeIgniter »

Novato con Code Igniter

Estas en el tema de Novato con Code Igniter en el foro de CodeIgniter en Foros del Web. Buenas llevo apenas un par de dias con Code Igniter y he realizado el tutorial entero de su página web y después he ojeado varios ...
  #1 (permalink)  
Antiguo 03/03/2013, 10:02
 
Fecha de Ingreso: enero-2004
Ubicación: here I Am
Mensajes: 437
Antigüedad: 20 años, 1 mes
Puntos: 1
Novato con Code Igniter

Buenas llevo apenas un par de dias con Code Igniter y he realizado el tutorial entero de su página web y después he ojeado varios manuales más. El concepto de MVC como su funcionamiento lo tengo claro pero tengo la siguiente duda.

Tengo el controlador products.php

Código PHP:
<?php
class Products extends CI_Controller {

    public function 
__construct()
    {
        
parent::__construct();
        
$this->load->model('products_model');
    }
        
        
        public function 
index()
        {
    
$data['Products'] = $this->products_model->get_productsHome();
    
$data['title'] = 'Products Home';

    
$this->load->view('templates/header'$data);
    
$this->load->view('products/index'$data);
    
$this->load->view('templates/footer');
        }
        
        
        public function 
get_products()
        {
        
$data['Products'] = $this->products_model->get_productsHome();
        
$this->load->view('products/listProductsHome'$data);
    }
        

}     
?>
Modelo products
Código PHP:
<?
class Products_model extends CI_Model {

    public function 
__construct()
    {
        
$this->load->database();
    }
        

        public function 
get_productsHome()
        {
    
        
$query $this->db->get('productCompare');
    return 
$query->result_array();
        }


        
}
?>
Luego en la carpeta views/products tengo el archivo listProductsHome.php con este contenido

Código PHP:
<?php foreach ($Products as $news_item): ?>


    <h2><?php echo $news_item['productName1'?></h2>
    <div id="main">
        <?php echo $news_item['productName2'?>
    </div>

<?php endforeach ?>

Básicamente hasta aquí hemos creado una vista que recupera los "productos" de la Base de datos y los prepara para mostrar.

Ahora voy al archivo que cargo al iniciar mi URl que es el archivo /views/templates/home.php que tiene el siguiente contenido

Código PHP:
<div class="home">
    <
a href="index.php/products/create">Crear enquesta</a>
    <
hr><br>
    
Ver ultimas "preguntas"<br>
    </
div
Y dentro de aquí intento poner el resultado de la vista anterior pero no se muy bien como , he intentado a instanciar un objeto Productos y llamar al método get_products sin éxito.

He probado algo como esto sin éxito
Código PHP:
    $products = new Products();
    
$products::get_products(); 
Voy bien encaminado ? Alguna ayuda / sugerencia ?

Gracias
__________________
Nuevo foro sobr el mundo del motor - Renault foro
http://www.renaultforo.com

Última edición por radge; 03/03/2013 a las 10:19
  #2 (permalink)  
Antiguo 05/03/2013, 08:51
 
Fecha de Ingreso: agosto-2010
Mensajes: 44
Antigüedad: 13 años, 6 meses
Puntos: 2
Respuesta: Novato con Code Igniter

El problema está en que estás intentando llamar un controlador. Lo que tienes que hacer es redireccionar a /products/get_products o bien, tomar esa funcion y ponerla en tu modelo, de esa manera lo llamas dentro de la vista <?php echo $this->mi_modelo->get_products(); ?>. Otro sería cargar aquella vista en una variable e insertarla donde quieres que se vea, hay una infinidad de opciones menos lo que estabas haciendo jaja.

saludos!
  #3 (permalink)  
Antiguo 05/03/2013, 13:29
 
Fecha de Ingreso: enero-2004
Ubicación: here I Am
Mensajes: 437
Antigüedad: 20 años, 1 mes
Puntos: 1
Respuesta: Novato con Code Igniter

Cita:
Iniciado por diegoibanez Ver Mensaje
El problema está en que estás intentando llamar un controlador. Lo que tienes que hacer es redireccionar a /products/get_products o bien, tomar esa funcion y ponerla en tu modelo, de esa manera lo llamas dentro de la vista <?php echo $this->mi_modelo->get_products(); ?>. Otro sería cargar aquella vista en una variable e insertarla donde quieres que se vea, hay una infinidad de opciones menos lo que estabas haciendo jaja.

saludos!
La verdad que no lo veo claro... yo lo que intento es separar los modelos uno de otro ya que no tiene nada que ver el modelo products con los demás... por eso desde el home que no deja de ser una vista... intento mostrar los productos... pero me falla un poco la "teoria" del que hacer ... puede ser... ?

Gracias.
__________________
Nuevo foro sobr el mundo del motor - Renault foro
http://www.renaultforo.com

Etiquetas: code, objeto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:06.