|
แนะนำการใช้งาน CRUDigniter 3 + Bootstrap เบื้องต้น |
แนะนำการใช้งาน CRUDigniter 3 + Bootstrap เบื้องต้น หากคุณเป็นอีกคนหนึ่งที่หลงไหลในการพัฒนาระบบหรือเว็บไซต์ โดยยึดเอา framework เป็นหลักในการพัฒนา ปกติ framework จะถูกออกแบบให้ทำงานแบบ MVC อยู่แล้ว ยิ่งทำให้เราง่ายต่อการพัฒนา หรือแก้ไข หรือทำงานเป็นทีมด้วยกันได้ ผมขอแนะนำ Tool Online ตัวหนึ่งชื่อว่า crudigniter ซึ่งเป็นระบบที่ทำงานแบบออนไลน์ crudigniter นี้ผมว่าน่าจะตอบโจทย์ให้กับนักพัฒนารุ่นเก่าหรือใหม่ที่กำลังสนใจ Codeigniter อยู่ เรามาเริ่มใช้งานง่ายๆกันเลยครับ
ซึ่ง crudigniter ตัวนี้จะเป็นการนำเอาฐานข้อมูลที่เราได้ออกแบบและสร้าง table ไว้แล้วนะครับ จากนั้นเราก็แค่นำเข้า(import)ฐานข้อมูล MySQL เข้าไปตัวระบบเขาก็จะทำการ Generated Code ให้เอง จากนั้นเราก็แค่กำหนดค่าต่างๆ เช่น อยากให้ หน้าฟอร์ม เป็นแบบไหน เราก็สามารถกำหนดได้ครับ ง่ายๆ แค่ 5 ขั้นตอน
ให้เข้าไปที่เว็บไซต์หลักก่อนครับ http://crudigniter.com/ จากนั้นให้เรา register แล้วก็ login ปกติครับ
![ci1 ci1](https://www.thaicreate.com/upload/stock/20160825165333.png?v=1001)
จะมี 5 ขั้นตอนที่ต้องทำ คือ
1.selected database SQL file
นำเข้าไฟล์ฐานข้อมูล SQL
![ci2 ci2](https://www.thaicreate.com/upload/stock/20160825165414.png?v=1001)
การนำเข้าฐานข้อมูล SQL ให้คลิก ปุ่ม Upload SQL file ครับ จากนั้นให้เลือกไฟล์ SQL ของเราที่ export ออกมาจาก phpmyadmin ของเราหรือที่อื่น ขนาดไม่ควรเกิน 8 mb
![ci3 ci3](https://www.thaicreate.com/upload/stock/20160825165808.png?v=1001)
2.Manage Database
ขั้นที่ 2 เป็นการจัดการแก้ไข ตาราง ดูโครงสร้างของตาราง ให้คลิกเลือกตารางที่เราต้องการที่จะจัดการ สามารถทำพร้อมกันทั้งหมดได้ครับ เช่น ถ้าเราอยากให้ฟอร์มที่หน้า view ของเรามีการตรวจสอบฟอร์มก่อนการกดบันทึก หรือใส่เงื่อนไขต่างๆ ก็ทำได้ครับ
![ci4 ci4](https://www.thaicreate.com/upload/stock/20160825170206.png?v=1001)
3.Rules & Associations
การทำ Form Validation Rules ให้กดที่ ปุ่ม Add Rule แล้วก็เลือกรูปแบบ rule ต่างๆ ที่เราต้องการ ไม่ว่าจะ Textbox , TextArea , Checkbox , Password , Dropdown หรือถ้าอยากให้ระบบกำหนดให้อัตโนมัติ เราก็กดปุ่มสีฟ้า Auto Build Validation Rules ได้เลยครับ ระบบก็จะจัดการให้เองเลย
![ci6 ci6](https://www.thaicreate.com/upload/stock/20160825170730.png?v=1001)
เราสามารถกำหนด FK foreign key ได้ด้วยนะครับ โดยกดที่ปุ่ม Configure Association
![ci7 ci7](https://www.thaicreate.com/upload/stock/20160825171058.png?v=1001)
แล้วก็กำหนด FK ให้ table เราได้เลยครับ ที่ทำตรงก็เพราะว่า ถ้าในฟอร์มใดที่มีการทำ select option ระบบก็จะทำให้เลยครับ
พอเรากำหนดค่าต่างๆ เสร็จแล้ว เราก็กดปุ่ม Continue to Naming & Optiions
4.Naming & Options
ตรงนี้ก็เป็นการกำหนดว่าเราอยากได้อะไรบ้าง เช่น พวกการเพิ่ม ลบ แก้ไข สามารถตั้งชื่อ Model , Controller , Viewsใหม่ได้ แต่แนะนำไม่ต้องตั้งใหม่ก็ได้ครับ เอาตามที่ระบบเขาทำให้เลย เพราะ folder ต่างๆที่ระบบสร้างให้จะได้สอดคล้องกัน เราจะได้ไม่งงด้วย อย่าลืม ติ๊กเลือก Bootstarp นะครับ
![ci8 ci8](https://www.thaicreate.com/upload/stock/20160825171345.png?v=1001)
เสร็จแล้วขั้นที่ 5 ก็กดรับ Code ได้เลยครับ
![ci88 ci88](https://www.thaicreate.com/upload/stock/20160825171826.png?v=1001)
เราจะได้โค้ดมาทั้ง model , controller และ views จากนั้นเราก็แค่จัดการปรับแต่ง ต่างๆ ตามต้องการได้เลยครับ
*** ถ้าเรากดปุ่ม Download Complete DB CRUD เราก็จะได้ไฟล์ CI ทั้งหมดพร้อมใช้งาน
![แ แ](https://www.thaicreate.com/upload/stock/20160825172034.png?v=1001)
ตัวอย่างโค้ด
<?
<?php
/*
* Generated by CRUDigniter v2.3 Beta
* www.crudigniter.com
*/
class Addres extends CI_Controller
{
function __construct()
{
parent::__construct();
$this->load->model('Addres_model');
}
/*
* Listing of address
*/
function index()
{
$data['address'] = $this->Addres_model->get_all_address();
$this->load->view('addres/index',$data);
}
/*
* Adding a new addres
*/
function add()
{
$this->load->library('form_validation');
$this->form_validation->set_rules('member_id','Member Id','required|integer');
$this->form_validation->set_rules('HouseNumber','HouseNumber','required|max_length[20]');
$this->form_validation->set_rules('building','Building','required|max_length[100]');
$this->form_validation->set_rules('VillageNo','VillageNo','required|max_length[50]');
$this->form_validation->set_rules('Alley','Alley','required|max_length[100]');
$this->form_validation->set_rules('Road','Road','required|max_length[100]');
$this->form_validation->set_rules('District','District','required|max_length[100]');
$this->form_validation->set_rules('area','Area','required|max_length[100]');
$this->form_validation->set_rules('province','Province','required|max_length[100]');
$this->form_validation->set_rules('mobile','Mobile','required|max_length[13]');
$this->form_validation->set_rules('fax','Fax','required|max_length[13]');
$this->form_validation->set_rules('email','Email','required|max_length[80]|valid_email');
$this->form_validation->set_rules('facebook','Facebook','required|max_length[100]');
$this->form_validation->set_rules('lineid','Lineid','required|max_length[50]');
if($this->form_validation->run())
{
$params = array(
'member_id' => $this->input->post('member_id'),
'HouseNumber' => $this->input->post('HouseNumber'),
'building' => $this->input->post('building'),
'VillageNo' => $this->input->post('VillageNo'),
'Alley' => $this->input->post('Alley'),
'Road' => $this->input->post('Road'),
'District' => $this->input->post('District'),
'area' => $this->input->post('area'),
'province' => $this->input->post('province'),
'mobile' => $this->input->post('mobile'),
'fax' => $this->input->post('fax'),
'email' => $this->input->post('email'),
'facebook' => $this->input->post('facebook'),
'lineid' => $this->input->post('lineid'),
);
$addres_id = $this->Addres_model->add_addres($params);
redirect('addres/index');
}
else
{
$this->load->view('addres/add');
}
}
/*
* Editing a addres
*/
function edit($id)
{
// check if the addres exists before trying to edit it
$addres = $this->Addres_model->get_addres($id);
if(isset($addres['id']))
{
$this->load->library('form_validation');
$this->form_validation->set_rules('member_id','Member Id','required|integer');
$this->form_validation->set_rules('HouseNumber','HouseNumber','required|max_length[20]');
$this->form_validation->set_rules('building','Building','required|max_length[100]');
$this->form_validation->set_rules('VillageNo','VillageNo','required|max_length[50]');
$this->form_validation->set_rules('Alley','Alley','required|max_length[100]');
$this->form_validation->set_rules('Road','Road','required|max_length[100]');
$this->form_validation->set_rules('District','District','required|max_length[100]');
$this->form_validation->set_rules('area','Area','required|max_length[100]');
$this->form_validation->set_rules('province','Province','required|max_length[100]');
$this->form_validation->set_rules('mobile','Mobile','required|max_length[13]');
$this->form_validation->set_rules('fax','Fax','required|max_length[13]');
$this->form_validation->set_rules('email','Email','required|max_length[80]|valid_email');
$this->form_validation->set_rules('facebook','Facebook','required|max_length[100]');
$this->form_validation->set_rules('lineid','Lineid','required|max_length[50]');
if($this->form_validation->run())
{
$params = array(
'member_id' => $this->input->post('member_id'),
'HouseNumber' => $this->input->post('HouseNumber'),
'building' => $this->input->post('building'),
'VillageNo' => $this->input->post('VillageNo'),
'Alley' => $this->input->post('Alley'),
'Road' => $this->input->post('Road'),
'District' => $this->input->post('District'),
'area' => $this->input->post('area'),
'province' => $this->input->post('province'),
'mobile' => $this->input->post('mobile'),
'fax' => $this->input->post('fax'),
'email' => $this->input->post('email'),
'facebook' => $this->input->post('facebook'),
'lineid' => $this->input->post('lineid'),
);
$this->Addres_model->update_addres($id,$params);
redirect('addres/index');
}
else
{
$data['addres'] = $this->Addres_model->get_addres($id);
$this->load->view('addres/edit',$data);
}
}
else
show_error('The addres you are trying to edit does not exist.');
}
/*
* Deleting addres
*/
function remove($id)
{
$addres = $this->Addres_model->get_addres($id);
// check if the addres exists before trying to delete it
if(isset($addres['id']))
{
$this->Addres_model->delete_addres($id);
redirect('addres/index');
}
else
show_error('The addres you are trying to delete does not exist.');
}
}
?>
สำหรับผู้เริ่มต้นใหม่แนะนำให้ศึกษาเรื่องหลักการทำงานของ MVC และ OOP ก่อนนะครับ จะได้ไม่ต้องงง
Reference : http://crudigniter.com/
|