act-training / query-builder
Laravel模型的即插式查询构建器。
2.1.1
2024-09-27 14:27 UTC
Requires
- php: ^8.2
- livewire/livewire: ^v3.2.6
- ryangjchandler/blade-tabler-icons: ^2.1
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- laravel/pint: ^v1.12.0
- nunomaduro/collision: ^v8.4.0
- nunomaduro/larastan: ^v2.9.8
- orchestra/testbench: ^9.0
- pestphp/pest: ^v3.2.2
- pestphp/pest-plugin-arch: ^v3.0.0
- pestphp/pest-plugin-laravel: ^v3.0.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- spatie/laravel-ray: ^1.26
- dev-main
- 2.1.1
- 2.1.0
- 2.0.8
- 2.0.7
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.1.7
- 1.1.6
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-71-add-save-button-to-report-editor
- dev-69-report-builder
- dev-67-set-scroll-position
- dev-65-prevent-scroll-on-pagination
- dev-SimonBarrettACT-patch-1
- dev-61-add-query-string
- dev-dependabot/github_actions/aglipanci/laravel-pint-action-2.4
This package is auto-updated.
Last update: 2024-09-27 14:28:38 UTC
README
为您的模型添加查询构建器和报表表。
安装
您可以通过composer安装此包
composer require act-training/query-builder
可选地,您可以使用以下命令发布视图:
php artisan vendor:publish --tag="query-builder-views"
用法
模型应使用AppliesCriteria特质。
class User extends Authenticatable { use AppliesCriteria; ... }
创建一个Livewire组件,并确保它扩展QueryBuilder。
<?php namespace App\Http\Livewire; use ACTTraining\QueryBuilder\QueryBuilder;use ACTTraining\QueryBuilder\Support\Columns\BooleanColumn;use ACTTraining\QueryBuilder\Support\Columns\Column;use ACTTraining\QueryBuilder\Support\Columns\DateColumn;use ACTTraining\QueryBuilder\Support\Conditions\BooleanCondition;use ACTTraining\QueryBuilder\Support\Conditions\DateCondition;use ACTTraining\QueryBuilder\Support\Conditions\TextCondition;use App\Models\Employee;use Illuminate\Database\Eloquent\Builder; class EmployeesReport extends QueryBuilder { public function config(): void { $this ->enableQueryBuilder() ->rowClickable(false); } public function columns(): array { return [ Column::make('Name', 'full_name') ->component('columns.common.title') ->sortable(), Column::make('Job Title', 'contract.job.name'), Column::make('Location', 'contract.location.name'), BooleanColumn::make('Line Manager', 'contract.line_manager') ->hideIf(false) ->justify('center'), DateColumn::make('Start Date', 'contract.start_date') ->humanDiff() ->justify('right'), ]; } public function conditions(): array { return [ TextCondition::make('Name', 'full_name'), TextCondition::make('Job Title', 'contract.job.name'), BooleanCondition::make('Line Manager', 'contract.line_manager'), TextCondition::make('Location', 'contract.location.name'), DateCondition::make('Start Date', 'contract.start_date'), ]; } public function query(): Builder { return Employee::query()->with(['contract', 'contract.job', 'contract.location']); } public function rowClick($row): void { $this->dispatchBrowserEvent('notify', ['content' => 'The row was clicked', 'type' => 'success']); } }
测试
composer test
变更日志
请参阅CHANGELOG以获取最近更改的更多信息。
贡献
请参阅CONTRIBUTING以获取详细信息。
安全漏洞
请查看我们的安全策略以了解如何报告安全漏洞。
鸣谢
许可
MIT许可(MIT)。请参阅许可文件以获取更多信息。