3 回答
TA贡献1847条经验 获得超7个赞
我有一个包含大量数据的模型,每个月它会生成近 1000 万条以上的记录,所以我也拆分了它的表格范围。
解决方案如下所示,
在您的订单模型中:
use Illuminate\Support\Carbon;
class Order extends Model
{
protected $table = '';
public function __construct($year='')
{
parent::__construct();
if (empty($year)) {
$tablename = 'orders'.Carbon::now()->year;
} else {
$tablename = 'orders'.$year;
}
$this->setTable($tablename);
}
}
所以你可以得到你想要的表:
$orders2018 = new Order('2018');
$orders2018->where(...)->get();
$orders = Order::where(...)->get(); // will search from the table this year.
TA贡献1735条经验 获得超5个赞
我认为你可以做范围
例子:
public function scopeYear($query,$year)
{
$this->table = 'orders'.year;
return $query;
}
要从 orders2019 表中获取,只需使用
Order::year('2019')->get();
要为 orders2019 表创建数据,只需使用
Order::year('2019')->create($data);
- 3 回答
- 0 关注
- 120 浏览
添加回答
举报