Hướng dẫn sử dụng cơ sở dữ liệu CodeIgniter: Tạo, Cập nhật, Xóa

Mục lục:

Anonim

CodeIgniter Làm việc với Cơ sở dữ liệu

Trong hướng dẫn trước, chúng tôi đã trình bày những kiến ​​thức cơ bản về bản ghi hoạt động CodeIgniter và cách chèn, cập nhật, xóa và đọc bản ghi từ cơ sở dữ liệu. Trong hướng dẫn này, chúng tôi sẽ tạo các mô hình cơ sở dữ liệu và sử dụng các biểu mẫu để tạo và cập nhật các bản ghi cơ sở dữ liệu. nếu bạn hoàn toàn mới làm việc với cơ sở dữ liệu trong CodeIgniter, thì bạn nên đọc hướng dẫn trước

Cấu hình cơ sở dữ liệu

Chúng tôi sẽ bắt đầu bằng cách tạo cơ sở dữ liệu dự án hướng dẫn. Chúng tôi sẽ tạo một cơ sở dữ liệu đơn giản để quản lý các chi tiết liên hệ. Chúng tôi sẽ tạo một cơ sở dữ liệu đơn giản với hai (2) bảng tên bạn bè và thành phố mà họ sống. Mối quan hệ giữa bạn bè và thành phố là 1-1 với id ở các thành phố là khóa chính và city_id là khóa ngoại trong bảng pals .

Chạy các tập lệnh sau để tạo cơ sở dữ liệu:

CREATE TABLE `pals` (`id` int(11) NOT NULL AUTO_INCREMENT,`city_id` int(11) DEFAULT NULL,`contact_name` varchar(245) DEFAULT NULL,`contact_number` varchar(245) DEFAULT NULL,`email_address` varchar(245) DEFAULT NULL,PRIMARY KEY (`id`));

Bây giờ chúng ta hãy tạo bảng thành phố

CREATE TABLE `cities` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(245) DEFAULT NULL,PRIMARY KEY (`id`)) ;

Mô hình cơ sở dữ liệu CodeIgniter

Bây giờ chúng tôi sẽ tạo các mô hình cho cơ sở dữ liệu của chúng tôi. Mô hình là phần M của MVC. Mô hình đề cập đến việc truy cập dữ liệu, thao tác dữ liệu và logic nghiệp vụ.

Trong CodeIgniter, mỗi mô hình phải xác định các phương thức mà nó sẽ hỗ trợ. Thay vì lặp lại cùng một đoạn mã trong mỗi mô hình, chúng ta sẽ tận dụng tính kế thừa trong lập trình hướng đối tượng và tạo một lớp mô hình mẹ sẽ xác định các phương thức cơ bản mà chúng ta mong muốn các mô hình của mình hỗ trợ.

Bảng dưới đây cho thấy các phương thức mà chúng tôi sẽ xác định và cách dữ liệu sẽ được truy cập.

S / N phương pháp Sự miêu tả
1 __xây dựng Định nghĩa phương thức hàm tạo gọi phương thức hàm tạo mẹ
2 lấy tất cả Truy xuất tất cả các trường và bản ghi từ cơ sở dữ liệu mà không cần bất kỳ điều kiện nào
3 get_by_id Lấy một hàng từ cơ sở dữ liệu bằng cách sử dụng khóa chính của loại INT có tên id
4 đi đâu Truy xuất tất cả các trường từ cơ sở dữ liệu dựa trên các tiêu chí dựa trên
5 chèn Chèn một bản ghi mới vào cơ sở dữ liệu
6 cập nhật Cập nhật bản ghi cơ sở dữ liệu hiện có dựa trên khóa chính của loại INT có tên id
7 xóa bỏ Xóa bản ghi hiện có khỏi cơ sở dữ liệu dựa trên khóa chính của loại INT có tên id

Hình ảnh sau đây cho thấy sơ đồ lớp và cách các mô hình con Pals and Cities liên quan đến mô hình mẹ BaseModel.

Chúng tôi sẽ tạo ra hai mô hình như mô tả trong hình trên

Tạo một lớp BaseModel mới trong ứng dụng / models / BaseModel.php

Thêm mã sau

db->get($this->table)->result();}public function get_by_id($id) {return $this->db->get_where($this->table, array('id' => $id))->row();}public function get_where($where) {return $this->db->where($where)->get($this->table)->result();}public function insert($data) {return $this->db->insert($this->table, $data);}public function update($id, $data) {$this->db->where('id', $id);$this->db->update($this->table, $data);}public function delete($id) {$this->db->where('id', $id);$this->db->delete($this->table);}}

ĐÂY,

  • bảo vệ $ table = ''; định nghĩa một bảng có tên biến được bảo vệ. Điều này sẽ được điền bởi lớp con tương ứng để chỉ định bảng nào các phương thức của lớp mô hình cơ sở của chúng ta sẽ tương tác với.
  • public function __construct () {…} xác định phương thức tạo và thực thi phương thức tạo của lớp cha CI_Model.
  • get_all () {…} sử dụng thư viện cơ sở dữ liệu và giá trị của bảng biến $ để chạy truy vấn SELECT đối với cơ sở dữ liệu của chúng tôi.
  • get_by_id ($ id) {…} xác định phương thức để truy xuất một hàng từ cơ sở dữ liệu và chấp nhận một tham số $ id phải thuộc kiểu dữ liệu INT.
  • get_where ($ where) {…} xác định phương thức get cho phép bạn đặt mệnh đề where.
  • insert ($ data) {…} xác định phương thức insert và chấp nhận tham số mảng $ data chứa các giá trị được ghi vào cơ sở dữ liệu.
  • update ($ id, $ data) {…} xác định phương thức cập nhật và chấp nhận tham số mảng $ data chứa các giá trị được cập nhật trong cơ sở dữ liệu.
  • delete ($ id) {…} xác định phương thức xóa chấp nhận một tham số $ id phải có kiểu dữ liệu INT.

bây giờ chúng ta đã hoàn thành với lớp mô hình mẹ, hãy tạo mô hình Pals của chúng tôi

Tạo một tệp mới trong application / models / Pals.php

Thêm mã sau

db->where('pals.id', $id);$this->db->select('pals.*,cities.name');$this->db->from('pals');$this->db->join('cities', 'pals.city_id = cities.id');$query = $this->db->get();return $query->row();}public function get_all() {$this->db->select('pals.*,cities.name');$this->db->from('pals');$this->db->join('cities', 'pals.city_id = cities.id');$query = $this->db->get();return $query->result();}}

ĐÂY,

  • class Pals mở rộng BaseModel {…} mở rộng BaseModel mô hình mẹ và tự động làm cho tất cả các phương thức được xác định trong BaseModel được truy cập vào lớp con.
  • bảo vệ $ table = 'pals'; xác định tên bảng được liên kết với mô hình mẹ của chúng tôi
  • __construct () {…} khởi tạo hàm tạo mẹ
  • public function get_by_id ($ id) {…} ghi đè get_by_id để cung cấp triển khai tùy chỉnh cụ thể cho mô hình Pals. Truy vấn get_by_id sử dụng một phép nối để lấy tên thành phố từ bảng thành phố
  • public function get_all () {…} ghi đè phương thức get_all để triển khai truy vấn nối giữa bảng pals và thành phố

Tạo một tệp mới trong application / models / Cities.php


ĐÂY,

  • bảo vệ $ table = 'thành phố'; xác định bảng cơ sở dữ liệu mô hình.

Như bạn có thể thấy từ đoạn mã đã cho ở trên, Kế thừa giúp chúng ta tiết kiệm rất nhiều thời gian khi làm việc với các mô hình trong CodeIgniter. Trong phần tiếp theo, chúng ta sẽ tìm hiểu

Bộ điều khiển Trình quản lý Danh bạ

Bây giờ chúng ta đã tạo các mô hình, hãy tạo các bộ điều khiển cho ứng dụng của chúng ta. Chúng tôi sẽ có hai bộ điều khiển là Danh bạ và Thành phố

Hãy bắt đầu với các thành phố

Tạo một tệp mới Cities.php trong thư mục ứng dụng / bộ điều khiển

Thêm mã sau

load->helper('url', 'form');$this->load->library('form_validation');$this->load->model('cities_model');}public function index() {$header['title'] = 'Cities Listing';$data['pals'] = $this->cities_model->get_all();$this->load->view('header',$header);$this->load->view('cities/index', $data);$this->load->view('footer');}public function create() {$header['title'] = 'Create City';$this->load->view('header',$header);$this->load->view('cities/create');$this->load->view('footer');}public function store() {$rules = array(array('field' => 'name','label' => 'City Name','rules' => 'required'));$this->form_validation->set_rules($rules);if ($this->form_validation->run() == TRUE) {$data = array('name' => $this->input->post('name'));$this->cities_model->insert($data);redirect(base_url('cities'));} else {$header['title'] = 'Create City';$this->load->view('header',$header);$this->load->view('cities/create');$this->load->view('footer');}}public function edit($id) {$header['title'] = 'Edit City';$data['city'] = $this->cities_model->get_by_id($id);$this->load->view('header', $header);$this->load->view('cities/edit', $data);$this->load->view('footer');}public function update($id) {$rules = array(array('field' => 'name','label' => 'City Name','rules' => 'required'));$this->form_validation->set_rules($rules);if ($this->form_validation->run() == TRUE) {$data = array('name' => $this->input->post('name'));$this->cities_model->update($id,$data);redirect(base_url('cities'));} else {$header['title'] = 'Edit City';$data['city'] = $this->cities_model->get_by_id($id);$this->load->view('header',$header);$this->load->view('cities/create',$data);$this->load->view('footer');}}public function delete($id) {$header['title'] = 'Delete City';$data['city'] = $this->cities_model->get_by_id($id);$this->load->view('header', $header);$this->load->view('cities/delete', $data);$this->load->view('footer');}public function destroy($id) {$this->cities_model->delete($id);redirect(base_url('cities'));}}

ĐÂY,

  • Đoạn mã trên thực hiện tất cả các phương thức cần để tạo, cập nhật, xóa và đọc các hàng từ cơ sở dữ liệu.

Tạo một tệp tin Contacts.php trong ứng dụng / bộ điều khiển

Thêm mã sau

load->helper('url', 'form');$this->load->library('form_validation');$this->load->model('pals_model');}public function index() {$header['title'] = 'Contacts List';$data['pals'] = $this->pals_model->get_all();$this->load->view('header', $header);$this->load->view('contacts/index', $data);$this->load->view('footer');}public function create() {$this->load->model('cities_model');$header['title'] = 'Create Contact';$data['cities'] = $this->cities_model->get_all();$this->load->view('header', $header);$this->load->view('contacts/create', $data);$this->load->view('footer');}public function store() {$rules = array(array('field' => 'contact_name','label' => 'Contact Name','rules' => 'required'),array('field' => 'contact_number','label' => 'Contact Number','rules' => 'required','errors' => array('required' => 'You must provide a %s.',),),array('field' => 'email_address','label' => 'Email Address','rules' => 'required'),array('field' => 'city_id','label' => 'City','rules' => 'required'));$this->form_validation->set_rules($rules);if ($this->form_validation->run() == FALSE) {$this->load->model('cities_model');$header['title'] = 'Create Contact';$data['cities'] = $this->cities_model->get_all();$this->load->view('header', $header);$this->load->view('contacts/create', $data);$this->load->view('footer');} else {$data = array('city_id' => $this->input->post('city_id'),'contact_name' => $this->input->post('contact_name'),'contact_number' => $this->input->post('contact_number'),'email_address' => $this->input->post('email_address'),);$this->pals_model->insert($data);redirect(base_url('contacts'));}}public function edit($id) {$this->load->model('cities_model');$header['title'] = 'Edit Contact';$data['cities'] = $this->cities_model->get_all();$data['pal'] = $this->pals_model->get_by_id($id);$this->load->view('header', $header);$this->load->view('contacts/edit', $data);$this->load->view('footer');}public function update($id) {$rules = array(array('field' => 'contact_name','label' => 'Contact Name','rules' => 'required'),array('field' => 'contact_number','label' => 'Contact Number','rules' => 'required','errors' => array('required' => 'You must provide a %s.',),),array('field' => 'email_address','label' => 'Email Address','rules' => 'required'),array('field' => 'city_id','label' => 'City','rules' => 'required'));$this->form_validation->set_rules($rules);if ($this->form_validation->run() == FALSE) {$this->load->model('cities_model');$header['title'] = 'Create Contact';$data['cities'] = $this->cities_model->get_all();$data['pal'] = $this->pals_model->get_by_id($id);$this->load->view('header', $header);$this->load->view('contacts/edit', $data);$this->load->view('footer');} else {$data = array('city_id' => $this->input->post('city_id'),'contact_name' => $this->input->post('contact_name'),'contact_number' => $this->input->post('contact_number'),'email_address' => $this->input->post('email_address'),);$this->pals_model->update($id, $data);redirect(base_url('contacts'));}}public function delete($id) {$this->load->model('cities_model');$header['title'] = 'Delete Contact';$data['cities'] = $this->cities_model->get_all();$data['pal'] = $this->pals_model->get_by_id($id);$this->load->view('header',$header);$this->load->view('contacts/delete',$data);$this->load->view('footer');}public function destroy($id){$this->pals_model->delete($id);redirect(base_url('contacts'));}}

Chế độ xem Trình quản lý Danh bạ

Chúng tôi đã xem xét các biểu mẫu và xác thực trong CodeIgniter trong các hướng dẫn trước. Chúng tôi sẽ sử dụng mã mà chúng tôi đã phát triển trong các hướng dẫn trước. Vì lợi ích của sự hoàn chỉnh, chúng tôi sẽ tái tạo mã chúng tôi đã tạo trong các hướng dẫn trước.

Quan điểm của ứng dụng của chúng tôi sẽ như sau

Bạn có thể tải xuống mã cho các chế độ xem ở trên bằng cách nhấp vào liên kết bên dưới

Lượt xem Trình quản lý Danh bạ CodeIgniter Tải xuống

Tóm lược

Trong hướng dẫn này, Bạn sẽ học cách tạo mô hình trong CodeIgniter. Chúng tôi đã tận dụng tính kế thừa trong lập trình hướng đối tượng để thúc đẩy khả năng tái sử dụng mã bằng cách tạo ra một mô hình cơ sở thực hiện bốn hoạt động cơ sở dữ liệu chính là chèn, đọc, cập nhật và xóa.

Chúng tôi đã chứng minh các khái niệm bằng cách sử dụng một ứng dụng thực tế và chúng tôi sẽ tiếp tục làm như vậy trong các hướng dẫn tiếp theo bằng cách thêm nhiều chức năng hơn vào ứng dụng.