sql >> Database >  >> RDS >> Mysql

Modelfunctie aanroepen in weergave codeigniter

MVC of niet naar MVC

Het eerste wat ik moet opmerken is dat Het is onmogelijk om klassieke MVC in PHP te schrijven . In feite implementeren de MVC-achtige PHP-frameworks zoals CodeIgniter of Yii soort van MVP waarin:

  • weergave is passief en kent geen model
  • presentator (controller) verandert status van model, leest informatie en geeft deze door aan weergave

Credits voor tereško

CodeIgniter-aanpak

Met name in CodeIgniter heb je echter 3 stappen:

  • Maak een Model om door de database te zoeken en de gegevens te retourneren (als een array of object)
  • Maak een Controller om te laden en het resultaat ophalen van het Model (een methode van het Model), en geef de geretourneerde gegevens door aan de weergave
  • Maak een weergave en gebruik PHP-loops om het resultaat weer te geven, bouw de HTML.

Allemaal samenkomen

Gezien de bovenstaande benadering, moet u het resultaat uit de database in uw model halen:

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

Haal het resultaat dan op en geef het door in de Controller:

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

Gebruik ten slotte de geretourneerde gegevens in de weergave om de lijst te genereren:

application/views/product_view.php

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


  1. Ondersteunt MS-SQL in-memory tabellen?

  2. De resultaten van een query gebruiken als kolomnamen in een SELECT-instructie

  3. Bereken procenten van SUM() in dezelfde SELECT sql-query

  4. in mysql, bij verwijderen cascade werkt niet