Berbagi itu indah

Membuat CRUD Sederhana Di Codeigniter

Artikel yang saya buat ini menunjukkan Bagaimana cara yang paling mudah membuat aplikasi CRUD (Create, Read, Update, Delete) sederhana dengan CodeIgniter. CodeIgniter (CI) adalah Framework PHP yang membantu membangun aplikasi web dengan lengkap.

Artikel ini merupakan kelanjutan dari tutorial dasar yang ada di situs/modul resmi CodeIgniter. Tutorial memiliki view dan add data part. Tapi, itu tidak berisi update dan delete part. Dan Saya baru saja menambahkan fungsi update dan delete di dalamnya.

Berikut adalah panduan langkah demi langkah untuk membuat aplikasi CRUD (Add / Edit / Delete / Update) di CodeIgniter.
Buat Database Dan Table
Pertama-tama, kita membuat database dan tabel. Untuk contoh artikel ini, kita akan membuat database bernama test. Dan saya akan membuat tabel bernama news di dalam database test.

Create database `test`
--
 
CREATE DATABASE `test`;
 
use `test`;
 
--
-- Table structure for table `news`
--
 
CREATE TABLE IF NOT EXISTS `news` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(128) NOT NULL,
  `slug` varchar(128) NOT NULL,
  `text` text NOT NULL,
  PRIMARY KEY (`id`),
  KEY `slug` (`slug`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
 
--
-- Dumping data for table `news`
--
 
INSERT INTO `news` (`id`, `title`, `slug`, `text`) VALUES
(1, 'Test', 'test', 'Hello World !!'),
(2, 'What is Lorem Ipsum?', 'what-is-lorem-ipsum', 'Lorem Ipsum is simply dummy text.');


Database Config Settings
Setelah Anda membuat database, Anda perlu menentukan host database, nama database, username database & password database Anda dalam file konfigurasi database di codeigniter. File tersebut berada pada application / config / database.php. Host database saya adalah localhost, nama database adalah tes (seperti yang dibuat oleh query sql di atas), username database adalah root dan password database adalah root. Berikut adalah pengaturan konfigurasi untuk contoh ini:

$db['default'] = array(
    'dsn'    => '',
    'hostname' => 'localhost',
    'username' => 'root',
    'password' => 'root',    
    'database' => 'test',    
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);

Controller
(application/controllers/News.php)
Pertama-tama, kita memerlukan Controller yang memproses permintaan masukan dari pengguna, berkomunikasi dengan Model dan kemudian memuat file Views yang sesuai.
Di kelas Controller di bawah ini, kita memiliki function (tindakan) yang berbeda untuk berbagai tugas. Seperti, function index () digunakan untuk daftar semua item berita, function create () yang digunakan untuk menambahkan item berita baru, function edit () yang digunakan untuk mengedit item berita, dan function delete () digunakan untuk menghapus item berita

load->model('news_model');
        $this->load->helper('url_helper');
    }
 
    public function index()
    {
        $data['news'] = $this->news_model->get_news();
        $data['title'] = 'News archive';
 
        $this->load->view('templates/header', $data);
        $this->load->view('news/index', $data);
        $this->load->view('templates/footer');
    }
 
    public function view($slug = NULL)
    {
        $data['news_item'] = $this->news_model->get_news($slug);
        
        if (empty($data['news_item']))
        {
            show_404();
        }
 
        $data['title'] = $data['news_item']['title'];
 
        $this->load->view('templates/header', $data);
        $this->load->view('news/view', $data);
        $this->load->view('templates/footer');
    }
    
    public function create()
    {
        $this->load->helper('form');
        $this->load->library('form_validation');
 
        $data['title'] = 'Create a news item';
 
        $this->form_validation->set_rules('title', 'Title', 'required');
        $this->form_validation->set_rules('text', 'Text', 'required');
 
        if ($this->form_validation->run() === FALSE)
        {
            $this->load->view('templates/header', $data);
            $this->load->view('news/create');
            $this->load->view('templates/footer');
 
        }
        else
        {
            $this->news_model->set_news();
            $this->load->view('templates/header', $data);
            $this->load->view('news/success');
            $this->load->view('templates/footer');
        }
    }
    
    public function edit()
    {
        $id = $this->uri->segment(3);
        
        if (empty($id))
        {
            show_404();
        }
        
        $this->load->helper('form');
        $this->load->library('form_validation');
        
        $data['title'] = 'Edit a news item';        
        $data['news_item'] = $this->news_model->get_news_by_id($id);
        
        $this->form_validation->set_rules('title', 'Title', 'required');
        $this->form_validation->set_rules('text', 'Text', 'required');
 
        if ($this->form_validation->run() === FALSE)
        {
            $this->load->view('templates/header', $data);
            $this->load->view('news/edit', $data);
            $this->load->view('templates/footer');
 
        }
        else
        {
            $this->news_model->set_news($id);
            //$this->load->view('news/success');
            redirect( base_url() . 'index.php/news');
        }
    }
    
    public function delete()
    {
        $id = $this->uri->segment(3);
        
        if (empty($id))
        {
            show_404();
        }
                
        $news_item = $this->news_model->get_news_by_id($id);
        
        $this->news_model->delete_news($id);        
        redirect( base_url() . 'index.php/news');        
    }
}

Model
(application/models/News_model.php)
Model kelas berkomunikasi dengan database. Logika database utama ditulis disini. Kelas ini bertanggung jawab untuk berinteraksi dengan database untuk data pilih, insert, update dan hapus tujuan.
Di bawah kelas Model, function et_news () berfungsi untuk fetches/selects item berita dengan nama $slug. Function get_news_by_id () mengambil berita dari ID itu. set_news () berfungsi mengedit atau menambahkan item berita. Function delete_news () menghapus item berita tertentu.

load->database();
    }
    
    public function get_news($slug = FALSE)
    {
        if ($slug === FALSE)
        {
            $query = $this->db->get('news');
            return $query->result_array();
        }
 
        $query = $this->db->get_where('news', array('slug' => $slug));
        return $query->row_array();
    }
    
    public function get_news_by_id($id = 0)
    {
        if ($id === 0)
        {
            $query = $this->db->get('news');
            return $query->result_array();
        }
 
        $query = $this->db->get_where('news', array('id' => $id));
        return $query->row_array();
    }
    
    public function set_news($id = 0)
    {
        $this->load->helper('url');
 
        $slug = url_title($this->input->post('title'), 'dash', TRUE);
 
        $data = array(
            'title' => $this->input->post('title'),
            'slug' => $slug,
            'text' => $this->input->post('text')
        );
        
        if ($id == 0) {
            return $this->db->insert('news', $data);
        } else {
            $this->db->where('id', $id);
            return $this->db->update('news', $data);
        }
    }
    
    public function delete_news($id)
    {
        $this->db->where('id', $id);
        return $this->db->delete('news');
    }
}

Template Header
(application/views/templates/header.php)
Ini adalah file template yang umum untuk semua halaman. Saya memanggil header di semua halaman.


        
                CodeIgniter Tutorial
        
        
 
                

Simple CRUD

Home | Add News

Template Footer
(application/views/templates/footer.php)
Ini adalah file template yang umum untuk semua halaman. Saya memanggil footer ini di semua halaman.

Copyright © 2016

Index View
(application/views/news/index.php)
File view ini disebut dengan Function index() di kelas Controller kita. Ini mencantumkan semua item berita.

Title Content Action
View | Edit | Delete

Detail View
(application/views/news/view.php)
File view ini disebut dengan function view () di kelas Controller kita. Ini mencetak item berita tertentu.

'.$news_item['title'].'';
echo $news_item['text'];

Add View
(application/views/news/create.php)
File view ini disebut dengan function create () di kelas Controller kita. Ini mencetak formulir untuk menambahkan item berita.

Edit View
(application/views/news/edit.php)
File view ini disebut dengan function edit () dari kelas Controller kita. Ini mencetak formulir untuk mengedit item berita.

Add Success View
(application/views/news/success.php)
File tampilan ini disebut setelah item berita baru ditambahkan ke database. File ini disebut dalam function create() di kelas Controller kita.

News added successfully!

Config Routes
(application/config/routes.php)
Aturan perutean didefinisikan di sini. Rute dapat ditentukan dengan menggunakan wildcard atau Regular Expressions.

$route['news'] = 'news';
$route['news/create'] = 'news/create';
 
$route['news/edit/(:any)'] = 'news/edit/$1';
 
$route['news/view/(:any)'] = 'news/view/$1';
$route['news/(:any)'] = 'news/view/$1';

Sekarang, Anda dapat mengakses aplikasi Anda sebagai http://your-website.com/news.

Anda mungkin juga berminat
Loading...