File size: 1,994 Bytes
a4a352b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
<?php
namespace app\common\model;
use think\Config as ThinkConfig;
use think\Model;
use think\Db;
use think\Cache;
class Base extends Model
{
protected $tablePrefix;
protected $primaryId;
protected $readFromMaster;
//自定义初始化
protected function initialize()
{
//需要调用`Model`的`initialize`方法
parent::initialize();
// 自定义的初始化
$this->tablePrefix = isset($this->tablePrefix) ? $this->tablePrefix : ThinkConfig::get('database.prefix');
$this->primaryId = isset($this->primaryId) ? $this->primaryId : $this->name . '_id';
$this->readFromMaster = isset($this->readFromMaster) ? $this->readFromMaster : false;
// 表创建或修改
if (method_exists($this, 'createTableIfNotExists')) {
$this->createTableIfNotExists();
}
}
public function getCountByCond($cond)
{
$query_object = $this;
if ($this->readFromMaster === true) {
$query_object = $query_object->master();
}
return (int)$query_object->where($cond)->count();
}
public function getListByCond($offset, $limit, $cond, $orderby = '', $fields = "*", $transform = false)
{
$orderby = $orderby ?: ($this->primaryId . " DESC");
$query_object = $this;
if ($this->readFromMaster === true) {
$query_object = $query_object->master();
}
$list = $query_object->where($cond)->field($fields)->order($orderby)->limit($offset . ',' . $limit)->select();
if (!$list) {
return [];
}
$final = [];
foreach ($list as $row) {
$row_array = $row->getData();
if ($transform !== false) {
$row_array = $this->transformRow($row_array, $transform);
}
$final[] = $row_array;
}
return $final;
}
public function transformRow($row, $extends = []) {
return $row;
}
} |