sql >> Database teknologi >  >> RDS >> Mysql

Kalder model funktion i visning kodetænder

MVC eller ej til MVC

Den første ting jeg bør bemærke er, at Det er umuligt at skrive klassisk MVC i PHP . Faktisk implementerer de MVC-lignende PHP-frameworks såsom CodeIgniter eller Yii en slags MVP hvori:

  • visningen er passiv og uvidende om modellen
  • præsentant (controller) ændrer modeltilstand, læser information og sender den til visning

Kredit til tereško

CodeIgniter-tilgang

Men især i CodeIgniter har du 3 trin:

  • Opret en model at forespørge gennem databasen og returnere dataene (som et array eller objekt)
  • Opret en Controller for at indlæse og hent resultatet fra modellen (en metode af modellen), og videregive de returnerede data til visningen
  • Opret en visning og brug PHP-løkker til at ekko resultatet, byg HTML.

Få det hele sammen

I betragtning af ovenstående tilgang skal du hente resultatet fra databasen i din model:

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

Hent og send derefter resultatet i controlleren:

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

Brug endelig de returnerede data i visningen til at generere listen:

application/views/product_view.php

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


  1. Den brugte tabeltype understøtter ikke FULLTEXT-indekser

  2. Sådan får du flere optællinger med en enkelt forespørgsel i MySQL

  3. Sådan bruger du paginering med laravel DB::select-forespørgsel

  4. Skriv en MySQL-forespørgsel for at få det ønskede resultat