优势/周期查询

在 Laravel 中通过重叠和交集的周期进行查询

v1.0.1 2019-05-01 12:30 UTC

README

向你的 Illuminate\Database\Query\Builder 添加 overlapsintersects 宏。

Period relations

安装

只需 composer require vantage/period-queries

用法

<?php

use Illuminate\Database\Eloquent\Model;

class Event extends Model
{
    /**
     * The attributes that should be mutated to dates.
     */
    protected $dates = ['started_at', 'ended_at'];

    /**
     * The attributes that are mass assignable.
     */
    protected $fillable = ['started_at', 'ended_at'];
}
use Carbon\CarbonPeriod;

$period = CarbonPeriod::create('2019-01-01', '2019-01-31');

Event::overlaps($period);
$start = new DateTime(2019, 1, 1);
$end = new DateTime(2019, 1, 31);
$period = new DatePeriod($start, 'P1D', $end);

Event::intersects($period);

高级

Event::whereTitle($title)->orOverlaps($period);
Event::whereTitle($title)->orIntersects($period);
Event::overlaps($period, ['created_at', 'updated_at']);

贡献

  1. composer install
  2. ./vendor/bin/phpunit