alias('this')->join('table that', 'this.id=that.id', 'LEFT')->join('othertable other', 'other.id=this.id', 'LEFT'); if (is_array($where)) { $where = array_merge(['stat' => ['eq', '0']], $where); } if ($where) { $this->where($where); } if ($order) { $this->order($order); } if ($field) { $this->field($field); } if (empty($limit)) { $limit = Config::get('list_rows'); } if ($selfpaginate) { $object = $this->paginate($limit); } else { $object = $this->paginate($limit, false, [ 'type' => 'bootstrap', 'var_page' => 'page',]); } //$object = $this->paginate($limit); return $object; } public function getList($where = null, $order = null, $field = null, $limit = null) { if (is_array($where)) { $where = array_merge(['stat' => ['eq', '0']], $where); } if ($where) { $this->where($where); } if ($field) { $this->field($field); } if ($order) { $this->order($order); } if ($limit) { $this->limit($limit); } $data = $this->select(); return $data; } public function getOneRow($where, $field = null, $order = null, $stat = true) { $object = $this::get(function($query)use($where, $field, $order, $stat) { if ($stat) { $query->where(['stat' => ['eq', '0']]); } $query->where('id', $where); if ($field) { $query->field($field); } if ($order) { $query->order($order); } //$query->fetchsql(true); }); return $object; } public function getRow($where = null, $field = null, $order = null, $fetchsql = false) { $object = $this::get(function($query)use($where, $field, $order, $fetchsql) { if (is_numeric($where)) { $query->where(['stat' => ['eq', '0']])->where('id', $where); } if (is_array($where)) { $where = array_merge(['stat' => ['eq', '0']], $where); $query->where($where); } if ($field) { $query->field($field); } if ($order) { $query->order($order); } //$fetchsql ? $query->fetchsql(true) : ''; }); return $object; } public function insertRow($data) { $object = $this::create($data); return $object; } public function saveRows($data) { $object = $this->saveAll($data); return $object; } public function updateRow($data = [], $where = [], $field = null) { $object = $this::update($data, $where, $field); return $object; } public function updateRows($data = [], $where = []) { if (!empty($where)) { $result = $this->save($data, function($query)use($where) { $query->where($where); }); } return isset($result) ? $result : false; } public function deleteRow($where, $stat = -1) { //$result = $this::destroy($id); if (is_array($where)) { $wheres = $where; $data['stat'] = $stat; } else { $wheres = ['id' => $where]; $data = ['stat' => $stat]; } $object = $this::update($data, $wheres); return $object; } public function deleteRows($ids, $stat = -1) { if (isset($ids) && !empty($ids)) { $result = $this->where(function($query)use($ids) { $query->where('id', 'in', $ids); })->update(['stat' => $stat]); } return isset($result) ? $result : false; } public function destroyRow($id) { $result = $this::destroy($id); return $result; } public function destroyRows($ids) { if (isset($ids) && !empty($ids)) { //$result = $this::destroy($ids); $result = $this::destroy(function($query)use($ids) { $query->where('id', 'in', $ids); }); } return isset($result) ? $result : false; } public function getOtherList($where = null, $order = null, $field = null, $limit = null) { if ($where) { $this->where($where); } if ($field) { $this->field($field); } if ($order) { $this->order($order); } if ($limit) { $this->limit($limit); } $data = $this->select(); return $data; } public function getOtherLists($where = null, $order = null, $field = null, $limit = null) { //$this->alias('this')->join('table that', 'this.id=that.id', 'LEFT')->join('othertable other', 'other.id=this.id', 'LEFT'); if ($where) { $this->where($where); } if ($order) { $this->order($order); } if ($field) { $this->field($field); } if (empty($limit)) { $limit = Config::get('list_rows'); } $object = $this->paginate($limit); return $object; } }