Tutorial Database CodeIgniter: Buat, Perbarui, Hapus

Daftar Isi:

Anonim

CodeIgniter Bekerja dengan Database

Dalam tutorial sebelumnya, kita telah membahas dasar-dasar catatan aktif CodeIgniter dan cara menyisipkan, memperbarui, menghapus, dan membaca catatan dari database. Dalam tutorial ini, kita akan membuat model database dan menggunakan formulir untuk membuat dan memperbarui record database. jika Anda benar-benar baru dalam bekerja dengan database di CodeIgniter, maka Anda disarankan untuk membaca tutorial sebelumnya

Konfigurasi Basis Data

Kami akan mulai dengan membuat database proyek tutorial. Kami akan membuat database sederhana untuk mengelola detail kontak. Kita akan membuat database sederhana dengan dua (2) tabel nama pals dan city tempat mereka tinggal. Hubungan antara pals dan cities bersifat one-to-one dengan id in cities sebagai primary key dan city_id sebagai foreign key di tabel pals .

Jalankan skrip berikut untuk membuat database:

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`));

Sekarang mari buat tabel kota

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

Model Database CodeIgniter

Kami sekarang akan membuat model untuk database kami. Model adalah bagian M dari MVC. Model tersebut berkaitan dengan akses data, manipulasi data, dan logika bisnis.

Di CodeIgniter, setiap model harus menentukan metode yang akan didukungnya. Alih-alih mengulangi kode yang sama di setiap model, kita akan memanfaatkan pewarisan dalam pemrograman berorientasi objek dan membuat kelas model induk yang akan menentukan metode dasar yang kita ingin model kita dukung.

Tabel di bawah ini menunjukkan metode yang akan kita tentukan dan bagaimana data akan diakses.

S / N metode Deskripsi
1 __membangun Mendefinisikan metode konstruktor yang memanggil metode konstruktor induk
2 dapat semua Mengambil semua bidang dan catatan dari database tanpa ketentuan apa pun
3 get_by_id Mengambil satu baris dari database menggunakan kunci utama tipe INT bernama id
4 get_where Mengambil semua field dari database berdasarkan kriteria yang ada
5 memasukkan Menyisipkan catatan baru ke dalam database
6 memperbarui Memperbarui catatan database yang ada berdasarkan kunci utama tipe INT bernama id
7 menghapus Menghapus record yang ada dari database berdasarkan primary key tipe INT bernama id

Gambar berikut menunjukkan diagram kelas dan bagaimana model anak Pals dan Cities berhubungan dengan model induk BaseModel.

Kami akan membuat dua model seperti yang dijelaskan pada gambar di atas

Buat kelas baru BaseModel di application / models / BaseModel.php

Tambahkan kode berikut

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);}}

SINI,

  • dilindungi $ table = ''; mendefinisikan tabel bernama variabel yang dilindungi. Ini akan diisi oleh kelas anak masing-masing untuk menentukan tabel mana yang harus berinteraksi dengan metode kelas model dasar kita.
  • public function __construct () {…} mendefinisikan metode konstruktor dan menjalankan metode konstruktor dari kelas induk CI_Model.
  • get_all () {…} menggunakan pustaka database dan nilai variabel $ table untuk menjalankan kueri SELECT terhadap database kita.
  • get_by_id ($ id) {…} mendefinisikan metode untuk mengambil satu baris dari database dan menerima parameter $ id yang seharusnya bertipe data INT.
  • get_where ($ where) {…} mendefinisikan metode get yang memungkinkan Anda menyetel klausa where.
  • insert ($ data) {…} mendefinisikan metode insert dan menerima parameter array $ data yang berisi nilai yang akan ditulis ke database.
  • update ($ id, $ data) {…} mendefinisikan metode update dan menerima parameter array $ data yang berisi nilai-nilai yang akan diperbarui dalam database.
  • delete ($ id) {…} mendefinisikan metode delete yang menerima parameter $ id yang seharusnya bertipe data INT.

sekarang setelah kita selesai dengan kelas model induk, mari kita buat model Pals kita

Buat file baru di application / models / Pals.php

Tambahkan kode berikut

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();}}

SINI,

  • class Pals extends BaseModel {…} memperluas model induk BaseModel dan secara otomatis membuat semua metode yang ditentukan dalam BaseModel diakses ke kelas anak.
  • dilindungi $ table = 'pals'; mendefinisikan nama tabel yang terkait dengan model induk kita
  • __construct () {…} menginisialisasi konstruktor induk
  • public function get_by_id ($ id) {…} menimpa get_by_id untuk menyediakan implementasi kustom khusus untuk model Pals. Kueri untuk get_by_id menggunakan gabungan untuk mengambil nama kota dari tabel kota
  • public function get_all () {…} menimpa metode get_all untuk mengimplementasikan kueri gabungan antara pals dan tabel kota

Buat file baru di application / models / Cities.php


SINI,

  • dilindungi $ table = 'kota'; mendefinisikan tabel database model.

Seperti yang Anda lihat dari kode yang diberikan di atas, Inheritance menghemat banyak waktu saat bekerja dengan model di CodeIgniter. Pada bagian selanjutnya, kita akan belajar

Pengontrol Manajer Kontak

Sekarang kita telah membuat model, mari kita buat pengontrol untuk aplikasi kita. Kami akan memiliki dua pengontrol yaitu Kontak dan Kota

Mari kita mulai dengan kota

Buat file baru Cities.php di direktori application / controllers

Tambahkan kode berikut

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'));}}

SINI,

  • Kode di atas mengimplementasikan semua metode yang dibutuhkan untuk membuat, memperbarui, menghapus dan membaca baris dari database.

Buat file lain Contacts.php di application / controllers

Tambahkan kode berikut

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'));}}

Tampilan Manajer Kontak

Kami sudah melihat formulir dan validasi di CodeIgniter di tutorial sebelumnya. Kami akan menggunakan kode yang kami kembangkan di tutorial sebelumnya. Demi kelengkapan, kami akan mereproduksi kode yang kami buat di tutorial sebelumnya.

Tampilan aplikasi kita adalah sebagai berikut

Anda dapat mendownload kode untuk tampilan di atas dengan mengklik link di bawah

Tampilan Manajer Kontak CodeIgniter Unduh

Ringkasan

Dalam tutorial ini, Anda akan mempelajari cara membuat model di CodeIgniter. Kami memanfaatkan pewarisan dalam pemrograman berorientasi objek untuk mempromosikan kegunaan kembali kode dengan membuat model dasar yang mengimplementasikan empat operasi database utama, yaitu menyisipkan, membaca, memperbarui, dan menghapus.

Kami telah mendemonstrasikan konsep menggunakan aplikasi praktis, dan kami akan terus melakukannya di tutorial berikutnya dengan menambahkan lebih banyak fungsionalitas ke aplikasi.