Laravel框架模型Model分表最简单的方法

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';
     public $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);
  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值