Ở bài trước mình đã giới thiệu cho các bạn 2 thành phần trong mô hình MVC đó là Controller và View trong CodeIgniter,hôm nay mình sẽ giới thiệu sang thành phần thứ 3 đó chính là Model trong CodeIgniter.
– Model là tầng xử lý những tác vụ liên quan đến tương tác cơ sở dữ liệu từ những yêu cầu của controller.
– Cấu hình thông tin kết nối CSDL các bạn truy cập vào application/config/database.php ,trong đây các bạn cần quan tầm tới cho mình đoạn cấu hình sau:
1
2
3
4
| $db['default']['hostname'] = 'localhost';$db['default']['username'] = 'root';$db['default']['password'] = '';$db['default']['database'] = ‘php'; |
Đây là cấu hình khi mình đang chạy trên localhost (mình sử dụng Xampp lên mặc định username=’root’ , password = ”) và tên CSDL của mình là php,các bạn cần cấu hình cho chính xác với dự án của các bạn nhé.
– Muốn kết nối với CSDL. Chúng ta chỉ việc gọi phương thức:
1
| $this->load->database(); |
Tạo 1 model đầu tiên
– Các bạn truy cập vào application/models tạo file có tên là user_mode.php với nội dung:
1
2
3
4
5
6
7
| class User_model extends CI_Model { public function __construct() { parent::__construct(); $this->load->database(); }} |
- Giống với controller, khi tạo lớp User_model thì chứ đầu tiên chúng ta phải viết hoa.
- Mọi model phải được kế thừa từ CI_Model
- Tên Model không được giống với tên controller,và tên class và tên file model phải giống nhau, tên file viết thường
- Nếu trong model sử dụng hàm khởi tạo __construct() thì bạn cần thêm parent::__construct(); để kế thừa từ CI_Model (tránh bị ghi đè)
- Đê kết nối tới csdl ta sử dụng phương thức $this->load->database();
Sử dụng Model trong CodeIgniter
– Để gọi 1 file model nào đó ta sử dụng cú pháp:
1
| $this->load->model("Tên_Model"); |
– Để gọi 1 phương thức trong model ta sử dụng
1
| $this->Tên_Model >ten_phuong_thuc(); |
– Ví dụ: Các bạn truy cập vào application/models tạo file có tên là user_mode.php với nội dung:
1
2
3
4
5
6
7
8
9
10
11
| class User_model extends CI_Model { public function __construct() { parent::__construct(); $this->load->database(); } public function get_list() { return array(); }} |
Tại controller User các bạn sử dụng model như sau:
1
2
3
4
5
6
7
8
9
| class User extends CI_Controller { public function index() { //load model $this->load->model("user_model"); //su dung phuong thuc get_list trong user_model $list = $this->user_model->get_list(); }} |
Thao tác liệt kê và nhận trả dữ liệu
a.Lựa chọn tên cột cần lấy:
1
| $this->db->select("tên cột 1, tên cột 2"); |
+ Nếu lấy hết các cột sử dụng:
1
| $this->db->select("*"); |
b.Truy vấn với điều kiện:
1
| $this->db->where("tên cột","Giá trị"); |
+ Hoặc có thể sử dụng 1 mảng các điều kiện
1
| $this->db->where(array("tên cột"=>"Giá trị“)); |
c.Sắp xếp kết quả trả về theo 1 trường nào đó:
1
| $this->db->order_by("tên cột asc hoặc desc"); |
+ Hoặc
1
| $this->db->order_by("tên cột”,”asc hoặc desc"); |
d.Giới hạn kết quả trả về:
1
| $this->db->limit("Số dòng du liệu muốn lấy","Vị trí"); |
e.Lấy tất cả record từ câu truy vấn:
+ Dữ liệu trả về dạng mảng sử dụng
+ Dữ liệu trả về dạng mảng sử dụng
1
| $query->result_array(); |
+ Dữ liệu trả về dạng đối tượng sử dụng
1
| $query->result(); |
f.Lấy 1 record trong dữ liệu:
+ Dữ liệu trả về dạng mảng sử dụng
+ Dữ liệu trả về dạng mảng sử dụng
1
| $query->row_array(); |
+ Dữ liệu trả về dạng đối tượng sử dụng
1
| $query->row(); |
g.Đếm số dòng dữ liệu trả về:
+ Dữ liệu trả về dạng mảng sử dụng
+ Dữ liệu trả về dạng mảng sử dụng
1
| $query->num_rows(); |
Ví dụ tổng hợp:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| class User_model extends CI_Model { public function __construct() { parent::__construct(); $this->load->database(); } public function get_list() { $this->db->select(‘*’); //lấy tất cả thông tin $this->db->where(“email",“php@gmail.com"); //điều kiện email = php@gmail.com $this->db->order_by("id”,”desc"); //sắp xếp dữ liệu theo ID (id lớn tới nhỏ) $this->db->limit(5,0); //lấy 5 thành viên, từ thành viên có vị trí đầu tiên $query=$this->db->get("user"); //lấy dữ liệu từ bảng user return $query->result(); //trả về 1 mảng các đối tượng }} |
– Với ví dụ tổng hợp phía trên chúng ta có thể diễn giải bằng lời như sau :”Lấy toàn bộ thông tin 5 thành viên mới nhất từ bảng user với điều kiện email = php@gmail.com”
Thao tác thêm, xóa, sửa dữ liệu
Thêm dữ liệu
+ Cú pháp:
1
| $this->db->insert("tên bảng","mảng dữ liệu"); |
+ Ví dụ:
1
2
3
4
5
| $data = array( 'name' => 'Nobitacnt', 'email' => 'hoangvantuyencnt@gmail.com');$this->db->insert("user",$data); |
Cập nhật dữ liệu
+ Cú pháp:
1
| $this->db->update("tên bảng","mảng dữ liệu"); |
+ Ví dụ:
1
2
3
4
5
6
| $data = array( 'name' => 'Nobitacnt', 'email' => 'hoangvantuyencnt@gmail.com');$this->db->where("id",“1");$this->db->update("user",$data); |
Với ví dụ trên chúng ta đang thực hiện cập nhật thông tin cho thành viên có id = 1,nếu các bạn không có thêm điều kiện thì tất cả các thành viên sẽ bị cập nhật thông tin này,lên các bạn cần chú ý điều kiên này nhé.
Xóa dữ liệu
+ Cú pháp:
1
| $this->db->delete("tên_bảng"); |
+ Ví dụ:
1
2
| $this->db->where("id",“1");$this->db->delete("user"); |
Với ví dụ trên chúng ta đang thực hiện xóa thành viên có id = 1,nếu các bạn không có thêm điều kiện thì tất cả các thành viên sẽ bị xóa,lên các bạn cần chú ý điều kiên này nhé.
Câu truy vấn bình thường thông
1
| $this->db->query("Câu query"); |
0 nhận xét: