churakovmike / laravel-extended-builder
Laravel 扩展查询构建器
1.0
2020-04-22 15:39 UTC
Requires
- illuminate/console: ^5.5|^6|^7
- illuminate/contracts: ^5.5|^6|^7
- illuminate/database: ^5.5|^6|^7
- illuminate/http: ^5.5|^6|^7
- illuminate/pagination: ^5.5|^6|^7
- illuminate/support: ^5.5|^6|^7
- illuminate/view: ^5.5|^6|^7
This package is auto-updated.
Last update: 2024-09-23 01:43:50 UTC
README
此包是组织模型子查询的好方法。
要求
- laravel 5.5+
入门
安装
该包可在 Packagist 上找到。
composer require churakovmike/laravel-extended-builder
用法
- 例如,您需要创建一个类,该类将从 ChurakovMike\ExtendedBuilder\ExtendedQuery 继承
<?php namespace App; use ChurakovMike\ExtendedBuilder\ExtendedQuery; /** * Class UserQuery * @package App * * @property string $modelClass */ class UserQuery extends ExtendedQuery { public function isActive() { return $this->where('status', true); } public function hasName($name) { return $this->where('name', $name); } }
- 然后,您需要在主模型中添加一个方法来调用查询构建器。
<?php namespace App; use Illuminate\Foundation\Auth\User as Authenticatable; /** * Class User * @package App */ class User extends Authenticatable { public static function where() { return new \App\UserQuery(get_called_class()); } }
- 现在,您可以从扩展查询调用子查询,同时也可以使用常规 Bulder 方法,请参见示例
$user = User::where() ->isActive() ->first();
函数调用链示例
$user = User::where() ->isActive() ->hasName('Mike') ->first();