sql >> Databáze >  >> RDS >> Mysql

Volání funkce modelu v zobrazení codeigniter

MVC nebo ne MVC

První věc, kterou bych měl poznamenat, je, že V PHP není možné napsat klasické MVC . Ve skutečnosti PHP frameworky podobné MVC, jako je CodeIgniter nebo Yii, implementují druh MVP ve kterém:

  • pohled je pasivní a nezná model
  • prezentátor (řadič) mění stav modelu, čte informace a předává je k zobrazení

Kredity pro tereško

Přístup CodeIgniter

Zejména v CodeIgniter však máte 3 kroky:

  • Vytvořte Model dotazovat se přes databázi a vracet data (jako pole nebo objekt)
  • Vytvořte Ovladač načíst a načtěte výsledek z Modelu (metoda modelu) a předá vrácená data zobrazení
  • Vytvořte Zobrazení a pomocí smyček PHP ozvěte výsledek, vytvořte HTML.

Dejte se všichni dohromady

Vzhledem k výše uvedenému přístupu je třeba načíst výsledek z databáze ve vašem modelu:

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

Poté načtěte a předejte výsledek v ovladači:

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

Nakonec použijte vrácená data v pohledu k vygenerování seznamu:

application/views/product_view.php

// Use $product to display the product.
print_r($product);


  1. PHP Jaká je výchozí znaková sada pro pdo mysql

  2. Jak zrušit více tabulek v PostgreSQL pomocí zástupného znaku

  3. Data ze dvou tabulek se stejnými názvy sloupců

  4. Oracle RAC a sekvence