Xem bài viết Học Codeigniter Framework với 2Cweb ( Phần 4)

Học Codeigniter Framework với 2Cweb ( Phần 4)

A. CÁCH SỬ DỤNG MODEL

Để sử dụng được model thì trước tiên ta cần load database lên và chúng thường được đặt trong model
	$this->load->database(); 
Sau khi đã load và kết nối database, giờ ta muốn dùng model nào thì load model đó lên và dùng các phương thức trong model đó, để load model thì ta dùng:
	$this->load->model('ten-model');
Dùng các phương thức trong model thì ta gọi theo cấu trúc sau:
	$this->ten-model->ten-phuongthuc(params);
Giờ mình sẽ làm ví dụ cho những gì mình vừa nói, trước tiên vào phpmyadmin tạo 1 cơ sở dữ liệu mới như sau:
Học Codeigniter Framework với 2Cweb ( Phần 4) - hiểu về Model  - 2Cwebvn
Ta sẽ tạo bảng có tên là data và thêm vài dòng dữ liệu, bảng data với cấu trúc như sau:
Học Codeigniter Framework với 2Cweb ( Phần 4) - hiểu về Model  - 2Cwebvn
Học Codeigniter Framework với 2Cweb ( Phần 4) - hiểu về Model  - 2Cwebvn
Tiếp theo ta vào đường dẫn application/config và mở file database.php để sửa lại cấu hình kết nối database như sau:
	$db['default']['hostname'] = 'localhost';
	$db['default']['username'] = 'root';
	$db['default']['password'] = '';
	$db['default']['database'] = 'ci_tutorial';
Ta vào file routes.php trong thư mục application/config sửa lại controller chạy chính:
	$route['default_controller'] = "data";
Nội dung file controller (data.php) như sau:
class Data extends CI_Controller{
	
	// Hàm Constructor
	function Data(){
		parent::__construct();
	}
	
	// Phương thức chạy chính cho Controller   
	function index(){
		// Load model m_data lên
		$this->load->model('m_data');
		
		// Gọi hàm trong model
		$data['items'] = $this->m_data->getData();
		
		// Truyền dữ liệu vào view và hiển thị
		$this->load->view('data_view', $data);
	}
}
Nội dung file model (m_data.php) như sau:
class M_data extends CI_Model{
	
	// Constructor model
	function __construct(){
		parent::__construct();
		
		// Load database
		$this->load->database();
	}
	
	// Lấy dữ liệu từ database
	function getData(){
		
		// Lấy tất cả dữ liệu trong bảng data
		$sql = $this->db->get('data');
		$result = $sql->result();
		
		// Trả kết quả về cho Controller
		return $result;
	}
}
File view sẽ là nội dung hiển thị dữ liệu được truyền từ controller ra, nội dung file view (data_view.php) như sau:
Học Codeigniter Framework với 2Cweb ( Phần 4) - hiểu về Model  - 2Cwebvn
Ta mở trình duyệt lên và truy cập đường dẫn: http://localhost/codeigniter_2cweb/ ta được kết quả như sau:
Học Codeigniter Framework với 2Cweb ( Phần 4) - hiểu về Model  - 2Cwebvn

B. PHƯƠNG THỨC CƠ BẢN TRONG MODEL

1. Insert dữ liệu

$this->db->insert();
$insert_data = array(
   'title' => 'My title' ,
   'content' => 'My Content'
);

$this->db->insert('ten-table', $insert_data); 

// INSERT INTO ten-table (title, content) VALUES ('My title', 'My content')

2. Update dữ liệu

$this->db->update();
$update_data = array(
               'title' => $title,
               'content' => $content
            );

$this->db->where('id', $id);
$this->db->update('ten-table', $update_data); 

// UPDATE ten-table 
// SET title = '{$title}', content = '{$content}'
// WHERE id = $id

3. Delete dữ liệu

$this->db->delete();
$this->db->delete('ten-table', array('id' => $id)); 

// DELETE FROM ten-table WHERE id = $id

4. Select dữ liệu

Về phần select thì có nhiều phần như select, from, where, order, group by, having,..
+ $this->db->select(): lấy các cột dữ liệu.
$this->db->select('title, content');
$query = $this->db->get('ten-table');

// SELECT title, content FROM ten-table
+ $this->db->from(): lấy bảng.
$this->db->select('title, content');
$this->db->from('ten-table');

$query = $this->db->get();

// SELECT title, content FROM ten-table
+ $this->db->join(): liên kết nhiều bảng với nhau.
$this->db->select('*');
$this->db->from('blogs');
$this->db->join('comments', 'comments.id = blogs.id');

$query = $this->db->get();

// SELECT * FROM blogs
// JOIN comments ON comments.id = blogs.id
+ $this->db->where(): lọc dữ liệu với nhiều điều kiện AND WHERE.
$this->db->select('*');
$this->db->from('ten-table');
$this->db->where('name !=', $name);
$this->db->where('id <', $id); 

// SELECT * FROM ten-table WHERE name != '2Cweb' AND id < 45
+ $this->db->or_where(): lọc dữ liệu với điều kiện OR WHERE.
$this->db->select('*');
$this->db->from('ten-table');
$this->db->where('name !=', $name);
$this->db->or_where('id >', $id); 

// SELECT * FROM ten-table WHERE name != '2Cweb' OR id > 50
Ở trên chỉ là các vấn đề cơ bản của select hiển thị dữ liệu, các bạn có thể xem thêm active record ở đây.
Qua bài này có lẻ các bạn đã hiểu được các kiến thức cơ bản về Model trong CI rồi đấy, cũng không khó lắm phải không các bạn. Các bài viết tiếp theo chúng mình sẽ tìm hiểu nhiều hơn về CI nhé :)

Kết luận

Bạn có thích bài viết này không? Nếu có hãy giúp mình like bài viết này nhé hoặc bạn có thể chia sẽ bài này đến những người mà bạn nghĩ họ quan tâm, xin cảm ơn!

Mọi ý kiến đóng góp hay thắc mắc bạn có thể gởi về cho chúng tôi qua form bình luận phía dưới. Cám ơn bạn đã ghé thăm web mình và xin chúc bạn thành công!

Nguồn: 2Cweb.vn

 

Leave a Comments