CodeIgniter 6- Model trong CodeIgniter | Diễn đàn công nghệ - Tin học Việt
  1. Thông Báo: Bạn nào có nhu cầu đặt banner, textlink, nâng cấp lên nhóm thành viên VIP vui lòng liên hệ trực tiếp qua email: lephuochuusvc@gmail.com giúp mình, giá hấp dẫn cho bạn nào đăng ký nhanh và sớm nhất
    : Hoặc Tải bảng báo giá mới nhất tại đây để biết thêm thông tin chi tiết>>>

CodeIgniter 6- Model trong CodeIgniter

Thảo luận trong 'Kiến thức tin học' bắt đầu bởi cukhoai, Thg 11 24, 2016.

Lượt xem: 207

  1. cukhoai New Member

    Model trong mô hình MVC được sử dụng để thao tác với CSDL, vì vậy mọi vấn đề về xử lý thông tin với Database sẽ được xử lý ở phần này sau khi đã được xử lý qua Controller, tương tự như View bạn không thể truy cập trực tiếp tới Model mà phải thông qua Controller.

    Tạo Model mới
    Model trong Codeigniter được lưu trữ trong thư mục application/models , bạn hoàn toàn có thể lưu trữ nó trong 1 thư mục con bên trong thư mục models.

    Bây giờ Công ty thiết kế website OTVINA sẽ demo thiết kế 1 model là: home_model.php với nội dung:

    <?php
    class Home_model extends CI_Model{
    public function __construct(){
    parent::__construct();
    }
    /*Tạo function lấy 10 bài viết mới*/
    public function getbaivietmoi(){
    $query= $this->db->get('baiviet',10);
    return $query->result();
    }
    }
    ?>
    Khi tạo model trong CodeIgniter các bạn cần lưu ý tên model phải đặt khác với tên controller, nên thông thường chúng tạo thêm hậu tố phía sau tên là _model, nếu bạn đặt trùng tên CI sẽ không xác định được đang gọi controller hay model.

    Bên trên là 1 ví vụ function lấy 10 bài viết mới trong Codeigniter các bạn thường gặp khi thiết kế website như: thiết kế website bán hàng, thiết kế website tin tức,... tuy nhiên về cú pháp chi tiết lấy dữ liệu ra như thế nào chúng ta sẽ tìm hiểu ở 1 bài viết khac.

    Gọi model trong Controller
    Gọi model
    Để gọi Model trong Controller bạn sử dụng phương thức sau:

    $this->load->model('tenmodel');
    Ví dụ:

    $this->load->model('home_model');
    hoặc

    $this->load->model('admin/home_model');
    nếu trường hợp model của bạn đặt trong 1 thư mục con tên là 'admin'.

    Gọi 1 phương thức trong model
    Như vậy bạn đã gọi thành công model đó ra, tuy nhiên để truy cập vào 1 phương thức bạn sử dụng cú pháp sau:

    $this->tenmodel->tenphuongthuc();
    Ví dụ trên chúng ta sẽ làm như sau:

    $this->load->model('home_model');
    $query=$this->home_model->getbaivietmoi();
    Trong trường hợp không muốn sử dụng tên model kia bạn hoàn toàn có thể đổi nó qua 1 tên khác bằng cách sử dụng: $this->load->model('home_model','ten_moi'); và sau này nó sẽ được gán 1 tên mới, khi sử dụng để gọi phương thức của model bạn cũng sẽ thay home_model thành tên mới vừa đổi.

    Tự động load 1 model
    Trường hợp nếu trang nào của bạn cũng phải lấy 10 bài viết mới, vậy thì mỗi function bạn sẽ phải gọi 1 lần model, như vậy sẽ làm chúng ta mất khá nhiều thời gian tạo/sửa chữa hoặc khó quản lý. Vì vậy chúng ta sẽ sử dụng giải pháp Autoload của Codeigniter nó giúp cho người thiết kế website dễ dàng tải 1 model tự động trên toàn trang.

    Để sử dụng bạn mở file application/config/autoload.php tìm dòng sau và thêm những model muốn tự động load vào mảng

    $autoload['model'] = array();
    Ví dụ:

    $autoload['model'] = array('home_model');
    như vậy là mỗi khi website chạy, model 'home_model' sẽ tự động được gọi. Chức năng này thật sự rất hữu ích mỗi khi chúng ta thiết kế 1 website, bởi việc sử dụng 1 model nhiều lần là thường xuyên gặp.

    Vậy là cơ bản nội dung bài hôm nay đã kết thúc, chúng ta sẽ tìm hiểu chi tiết hơn về các thao tác thêm sửa xóa ở bài tiếp theo về Database trong CodeIgniter.

    Cảm ơn các bạn và chúc các bạn thiết kế website của mình chuyên nghiệp hơn với Codeigniter <3

    Nguồn : CodeIgniter 6- Model trong CodeIgniter
     
    :
  • Chia sẻ trang này