Bedhoel

models/Skill.php

Nov 5th, 2020
2,266
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.38 KB | None | 0 0
  1. <?php
  2. defined('BASEPATH') OR exit('No direct script access allowed');
  3. use Illuminate\Database\Eloquent\Model as Eloquent;
  4.  
  5. class Skill extends CI_Model,Eloquent   // I want multiple Extends :(
  6. {
  7.     protected $table = 'master_skill';
  8.     public $timestamps = false;
  9.  
  10.      // start datatables
  11.     var $column_order = array(null, 'skill_name', 'created_at', 'updated_at'); //set column field database for datatable orderable
  12.     var $column_search = array('skill_name'); //set column field database for datatable searchable
  13.     var $order = array('skill_name' => 'asc'); // default order
  14.  
  15.     private function _get_datatables_query() {
  16.         $this->db->select('master_skill.*');
  17.         $this->db->from('master_skill');
  18.         $this->db->where('is_deleted','0');
  19.         $i = 0;
  20.         foreach ($this->column_search as $item) { // loop column
  21.             if(@$_POST['search']['value']) { // if datatable send POST for search
  22.                 if($i===0) { // first loop
  23.                     $this->db->group_start(); // open bracket. query Where with OR clause better with bracket. because maybe can combine with other WHERE with AND.
  24.                     $this->db->like($item, $_POST['search']['value']);
  25.                 } else {
  26.                     $this->db->or_like($item, $_POST['search']['value']);
  27.                 }
  28.                 if(count($this->column_search) - 1 == $i) //last loop
  29.                     $this->db->group_end(); //close bracket
  30.             }
  31.             $i++;
  32.         }
  33.          
  34.         if(isset($_POST['order'])) { // here order processing
  35.             $this->db->order_by($this->column_order[$_POST['order']['0']['column']], $_POST['order']['0']['dir']);
  36.         }  else if(isset($this->order)) {
  37.             $order = $this->order;
  38.             $this->db->order_by(key($order), $order[key($order)]);
  39.         }
  40.     }
  41.  
  42.     function get_datatables() {
  43.         $this->_get_datatables_query();
  44.         if(@$_POST['length'] != -1)
  45.         $this->db->limit(@$_POST['length'], @$_POST['start']);
  46.         $query = $this->db->get();
  47.         return $query->result();
  48.     }
  49.     function count_filtered() {
  50.         $this->_get_datatables_query();
  51.         $query = $this->db->get();
  52.         return $query->num_rows();
  53.     }
  54.     function count_all() {
  55.         $this->db->from('master_skill');
  56.         return $this->db->count_all_results();
  57.     }
  58.     // end datatables
  59. }
Advertisement
Add Comment
Please, Sign In to add comment