Bài 4: Load Model Trong Codeigniter

codeigniter

Bài viết này thực hiện (hoặc lụm bài về đăng câu like từ các trang khác) bởi Việt Lâm Coder một YOUTUBER có tâm và đẹp trai siêu cấp vô địch zũ trụ.

1. Cấu Hình Database

Trong Codeigniter để kết nối với Database chúng ta phải cấu hình thông tin cho đúng. Bạn ở file application/config/database.phpsau đó kéo xuống bên dưới chỉnh lại một số thông tin sau:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'Tên Đăng Nhập Database'; // Chỉnh ở đây
$db['default']['password'] = 'Mật Khẩu Đăng Nhập'; // Chỉnh ở đây
$db['default']['database'] = 'Tên Database'; // Chỉnh ở đây
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbtextareafix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_textarea'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

Sau khi chỉnh xong bạn lưu lại và vào một Controller nào đó chạy lệnh này: $this->load->database();  Nếu không bị lỗi thì bạn config dababase đúng, còn không thì bạn kiểm tra lại thông tin nhé.

2. Tạo Mới Một Model Trong Codeigniter

Tất cả các file model đều nằm trong thư mục application/models nên bạn vào đó tạo một file news_model.php có nội dung như sau:

1
2
3
4
5
6
7
class News_model extends CI_Model
{
    public function getList()
    {
        // Code
    }
}

Trong đó News_model là tên model của bạn, nó phải giống với tên file news_model.php và ký tự đầu tiên phải ghi hoa. Mọi model đều phải kế thừa lớp CI_Model  thì mới hoạt động được. Vậy là bạn đã tạo xong model news_model rồi đó.

3. Load Model Trong Controller

Để load model trong controller ta dùng cú pháp: $this->load->model(‘ten_model’), và để gọi các hàm trong model ta dùng cú pháp: $this->ten_model->ham().

Ví dụ: Bạn tạo một mới Controller tên là News.php với nội dung như sau:

1
2
3
4
5
6
7
8
9
10
11
class News extends CI_Controller
{
    function news_list()
    {
        // Load model
        $this->load->model('news_model');
 
        // Gọi function trong model
        $news_list = $this->news_model->getList();
    }
}

Nếu bạn muốn load model và đặt cho nó một cái tên khác thì ta dùng cú pháp: $this->load->model(‘ten_model’,’ten_khac’); và để gọi các hàm trong model ta dùng cú pháp: $this->ten_khac->ham().

Ví dụ:

1
2
3
4
5
6
7
8
9
10
11
class News extends CI_Controller
{
    function news_list()
    {
        // Load model
        $this->load->model('news_model', 'm_news');
 
        // Gọi function trong model
        $news_list = $this->m_news->getList();
    }
}

Trong ứng dụng nếu một model nào đó luôn luôn sử dụng thì bạn có thể dùng chức năng Autoload của Codeigniter, bạn mở file application/config/autoload.php và tìm đến dòng (hình như dòng cuối cùng) $autoload[‘model’] = array(), sau đó bạn thêm model bạn cần load vào, ví dụ tôi thêm model news_model: $autoload[‘model’] = array(‘news_model’).

Sau khi thêm model vào autoload thì ở controller bạn chỉ cần sử dụng nó mà không cần phải load model đó ra

1
2
3
4
5
6
7
8
class News extends CI_Controller
{
    function news_list()
    {
        // Gọi function trong model
        $news_list = $this->news_model->getList();
    }
}

Nếu model của bạn nằm trong một folder. Ví dụ model của bạn nằm trong folder application/models/news/news_model.php thì bạn dùng cú pháp sau: $this->load->model(‘news/news_model’) và vẫn dùng cú pháp cũ để gọi hàm trong model: $this->news_model->getList();

Ví dụ: file model nằm trong thư mục: application/models/news/news_model.php

1
2
3
4
5
6
7
8
9
10
11
class News extends CI_Controller
{
    function news_list()
    {
        // Load model
        $this->load->model('news/news_model');
 
        // Gọi function trong model
       $news_list = $this->news_model->getList();
    }
}

Lời Kết

Trong bài này chúng ta biết được cách tạo mới một model trong codeigniter, cách gọi model trong controller và cấu hình database trong codeigniter. Bài này vẫn chưa đi sâu vào cách xử lý dữ liệu nhưng bạn đừng chủ quan vì những bài sau tôi sẽ không nhắc đến nó nữa. Bài tiếp theo chúng ta sẽ tìm hiểu thư viện Session trong codeigniter.

Nguồn : freetuts.net

Bài viết này thực hiện (hoặc lụm bài về đăng câu like từ các trang khác) bởi Việt Lâm Coder một YOUTUBER có tâm và đẹp trai siêu cấp vô địch zũ trụ.

Liên hệ ngay với Việt Lâm Coder
Xin chào! Chúng tôi có thể giúp gì cho bạn ?
Gọi ngay cho chúng tôi