PHP CI MANIA 0.8.4.12 เพิ่มตัวแปรใน MODEL เพื่อการกำหนดเงื่อนไขที่ง่ายขึ้ัน เพิ่มตำแหน่งการเช็ค Login ทั้ง Controller
ส่วนของ Controller
- กำหนดให้เช็ค Login ที่ระดับ function __construct() เพื่อให้มีผลทั้งหน้าเว็บ โดยการ extends MEMBER_Controller เมื่อต้องการเช็คสิทธิ์การ Login - เพิ่มค่า Default ให้ $this->Model->session_name เพื่อป้องกัน session ซ้ำกันส่วนของการค้นหาในหน้าตารางแสดงรายการ
ส่วนของ Model
- เพิ่มตัวแปร public $order_by; สำหรับใช้เป็นการจัดเรียงตามกำหนดเอง
- เพิ่มตัวแปร public $where_condition; ใช้สำหรับค้นหาด้วยค่าที่กำหนดเอง
ตัวอย่างการสร้างฟังก์ชั่น เพื่อดึงข้อมูลจากหลายๆตาราง มาแสดงในหน้าเดียวกัน
public function list_all() {
$results = $this->Your_Model->read($start_row, $per_page);
$total_row = $results['total_row'];
$search_row = $results['search_row'];
$list_data = $this->setDataListFormat($results['list_data'], $start_row);
$this->data['data_list'] = $list_data;// ข้อมูลจากการ Generate
$this->data['data_list_news'] = $this->get_other_table_data_in_one_page(); //ตารางอื่นๆ 1
$this->data['data_list_product'] = $this->get_product_list(); //ตารางอื่นๆ 2
$this->render_view('frontpage/ita/ita_list_view');
}
private function get_other_table_data_in_one_page()
{
$this->load->model('pages_module/Your_model');
$Your_model= $this->Your_model;
$Your_model->order_field = '';
$Your_model->order_sort = '';
$Your_model->order_by = 'sort';
$Your_model->where_condition = ''; // เพิ่ม WHERE ตรงนี้ถ้าต้องการกรองรายการ
$results = $Your_model->read();//0,10 limit จำนวนรายการที่ต้องการ
$ita = array();
foreach ($results['list_data'] as $key=>$item) {
$ita[$item['category_id']][$key] = $item;
}
//echo '<pre>', print_r($ita,true), '</pre>';
//ดึงข้อมูลหมวดหมู่
$category = $Your_model->get_category();
$ita_list = '';
foreach($category as $row){
//จับคู่อาร์เรย์ใหม่
//$ita_list[$i]['record_number'] = $record_number;
$ita_list .= '<h5>'. $row['category_name'] . '</h5>';
$ita_list .= '<ul>';
if(isset($ita[$row['id']])){
foreach($ita[$row['id']] as $item){
$ita_list .= '<li>'. $item['topic'].'</li>';
}
}
$ita_list .= '</ul>';
}
return $ita_list;
}
ในส่วนของ Model จะมีตัวแปรที่เพิ่มมาอีก 2 ตัว คือ
class Department_model extends MY_Model { private $my_table; public $session_name; public $order_field; public $order_sort; public $order_by; public $where_condition;
ใช้สำหรับรับค่าที่ set มาจาก Controller ก่อนเรียกใช้งานฟังก์ชั่น read() ใน Model เพื่อโหลดรายการทั้งหมดตามเงื่อนไข where_condition กำหนดเอาไว้
public function read($start_row = FALSE, $per_page = FALSE) { $search_field = $this->session->userdata($this->session_name . '_search_field'); $value = $this->session->userdata($this->session_name . '_value'); $value = trim($value); $where = $this->where_condition; $order_by = $this->order_by;
if($this->order_field != ''){ $order_field = $this->order_field; $order_sort = $this->order_sort; $order_by = ($order_by != '' ? ', ' : '') . " $this->my_table.$order_field $order_sort"; }
จุดที่เพิ่มเข้ามาของ Model คื่อที่ไฮไลท์สีและกำหนดเป็นตัวหน้าเอาไว้ด้านบน
ส่วนของ JavaScript
- กรที่บันทึกแบบไม่ได้ทำ Master & Detail กำหนดให้ redirect กลับไปที่หน้ารายการเมื่อทำการบันทึกเสร็จเรียบร้อย
อัพเดตโปรแกรมได้ที่ Downloads
PHP CI MANIA - PHP Code Generator
โปรแกรมช่วยสร้างโค้ด "ลดเวลาการเขียนโปรแกรม"
ความคิดเห็น
แสดงความคิดเห็น