Laravel 中每年的单独表格

在 Laravel 中如何实现基于年份的表格,如Orders2020,等Orders2019Orders2018以及如何切换?



幕布斯6054654
浏览 121回答 3
3回答

aluckdog

我有一个包含大量数据的模型,每个月它会生成近 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.

喵喔喔

我认为你可以做范围例子:public function scopeYear($query,$year){    $this->table = 'orders'.year;    return $query;}要从 orders2019 表中获取,只需使用Order::year('2019')->get();要为 orders2019 表创建数据,只需使用Order::year('2019')->create($data);

有只小跳蛙

Order::from('orders_2019')->get();
打开App,查看更多内容
随时随地看视频慕课网APP