houseoftech / laravel-recurring
simshaun/recurr 集成于 Laravel/Eloquent。
v2.0
2019-10-09 07:06 UTC
Requires
- php: ^7.2
- illuminate/support: ^6.0
- simshaun/recurr: ^3.0
Requires (Dev)
- graham-campbell/testbench: ^3.3
- mockery/mockery: ^1.0
- phpunit/phpunit: ^8.0
This package is auto-updated.
Last update: 2024-09-09 19:54:26 UTC
README
安装
使用 Composer 在项目的根目录下安装此包。
$ composer require houseoftech/laravel-recurring
注意:如果使用 Laravel 5.x,则需要版本 1。
$ composer require houseoftech/laravel-recurring:1.5.3
此包包含一个可发布的资产。发布将会将配置复制到您的项目中以便修改。
$ php artisan vendor:publish
配置文件位于 config/laravel-recurring.php。
用法
<?php namespace App; use BrianFaust\LaravelRecurring\Traits\RecurringTrait; use Illuminate\Database\Eloquent\Model; class Task extends Model { use RecurringTrait; }
Route::get('/', function () { $task = App\Task::first(); $task->recurr()->first(); $task->recurr()->last(); $task->recurr()->next(); $task->recurr()->current(); $task->recurr()->rule(); $task->recurr()->schedule(); });
示例
$task = new App\Task(); $task->start_at = '2017/1/1'; $task->until = '2017/12/12'; $task->by_day = 'MO,FR'; $task->frequency = 'WEEKLY'; $task->timezone = 'Europe/Amsterdam'; $start = new DateTime('2017/5/5'); $end = new DateTime('2017/5/15'); print_r($task->recurr()->scheduleBetween($start, $end)); // Using exceptions and inclusions $task->exceptions = ['2017/05/08']; $task->inclusions = ['2017/05/10', '2017/05/11']; print_r($task->recurr()->scheduleBetween($start, $end));
直接从相关模型中获取异常和包含日期
异常和包含可以传递为一个日期字符串、日期字符串数组,或者一个 Eloquent.Collection。值将从 date 列中提取。
示例异常迁移
Schema::create('exceptions', function (Blueprint $table) { $table->increments('id'); $table->integer('event_id')->unsigned(); $table->datetime('date'); $table->timestamps(); });
假设 Task 模型与 Exception 有 hasMany 关联,例如。
public function exceptions() { return $this->hasMany(Exception::class); }
异常可以直接传递给 recurr。
$task = App\Task::with('exceptions')->find(1); print_r($task->recurr()->schedule());
测试
$ phpunit
安全
如果您在此包中发现安全漏洞,请向 Brian Faust 发送电子邮件至 hello@brianfaust.me。所有安全漏洞都将得到及时处理。