Mysql
 sql >> база данни >  >> RDS >> Mysql

Извикване на функция за модел в изглед codeigniter

MVC или не към MVC

Първото нещо, което трябва да отбележа е, че Невъзможно е да се напише класически MVC в PHP . Всъщност MVC-подобните PHP рамки, като CodeIgniter или Yii, имплементират видMVP в който:

  • изгледът е пасивен и не знае за модела
  • презентаторът (контролерът) променя състоянието на модела, чете информация и я предава на преглед

Кредити на tereško

Подход на CodeIgniter

Въпреки това, особено в CodeIgniter, имате 3 стъпки:

  • Създайте модел за запитване през базата данни и връщане на данните (като масив или обект)
  • Създайте контролер за зареждане и извлечете резултата от Модела (метод на модела) и предайте върнатите данни на изгледа
  • Създайте Изглед и използвайте PHP цикли, за да повторите резултата, изградете HTML.

Събиране на всички

Имайки предвид горния подход, трябва да извлечете резултата от базата данни във вашия модел:

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

След това извлечете и предайте резултата в контролера:

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

Накрая използвайте върнатите данни в изгледа, за да генерирате списъка:

application/views/product_view.php

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. използване на нулеви стойности в подготвено изявление на mysqli

  2. MySQL Query за изтегляне на елементи, но винаги показване на определен в горната част

  3. Моделиране на UUID в обект на хибернация срещу MySQL

  4. Заявката на Mysql с Left Join е твърде много бавна

  5. MySQL LEFT JOIN дублира резултатите