讨论数量:
Laravel框架模型Model分表最简单的方法
首先创建一个BaseModel,将所有的Model都继承该BaseModel,在BaseModel中创建一个store方法:
设置查询的数据仓库(表)名称
protected static function store($code='')
{
$model = new static;
$model->code= $code;
//calcTable分表算法,根据自己的实际情况修改
$tableName = calcTable($model->table,$code);
return $model->setTable($tableName)->newQuery();
}
/**
* 获取分表后的表名
* @return string
*/
public function getStoreTable()
{
$model=new static;
$code=$model->code;
$table=$model->table;
return calcTable($table,$code);
}
以OrderModel为例
class OrderModel extends BaseModel{
protected $table = 'orders';
protected $code = '';
public function getTable()
{
return $this->getStoreTable();
}
}
调用:
$order_num='110023729';
//查询
Orders::store($order_num)->where('status',1)->get();
//新增
$data=[
'order_num'=>$order_num,
'status'=>1
];
Orders::store($order_num)->insert($data);
推荐文章: