sofa/laravel-scopes

此包已 弃用 并不再维护。未建议替代包。

为 Laravel 的 Query Builder 提供方便的查询范围。

v1.0 2015-11-20 00:07 UTC

This package is auto-updated.

Last update: 2021-04-07 07:52:14 UTC


README

为 Laravel 的 Query Builder 提供方便的查询范围。

安装

包需要 PHP 5.5.9+ 并与 Laravel 5.1.20+ (或独立 illuminate/database 5.1.20) 兼容。

  1. 在您的 composer.json 中需要此包

        "require": {
            ...
            "sofa/laravel-scopes": "~1.0",
        },
    
  2. 当您启动应用时调用 (new Sofa\LaravelScopes\PeriodsAdd)->apply()。在 Laravel 中,只需将 ServiceProvider 添加到您的 config/app.php 文件中

        'providers' => [
            // ...
            Sofa\LaravelScopes\ServiceProvider::class,
            // ...
        ],

使用示例

Periods

为查询 Builder 提供扩展,以便轻松获取相对于 NOW 的记录范围,方法也可以用于任何 Eloquent 模型

// Given it's September 11th, 2015

// Query\Builder: count users created in August
DB::table('users')->lastMonth()->count();

// Eloquent\Buidler: get users created on September 10th
User::yesterday()->get();

// count users who logged-in in 2014 & 2015
User::periods('year', 1, 'last_login', true)->count();

// count users created in 2014 & 2015
User::periods('year', -1, null, true)->count();
// or
User::periods('year', -1, true)->count();

// Get subscriptions expiring in October
User::where(...)->nextMonth()->get();

// Get subscriptions expired in past 7 days
User::has(...)->periods('day', -7)->get();

// Get subscriptions expiring in next 30 days
User::periods('day', 30)->get();

路线图

  • Periods
  • 可搜索