justinmoh / backpack-helper
为Laravel-Backpack CRUD提供的一个辅助包,允许使用CRUD组件作为链式方法。
1.3.0
2021-10-12 16:48 UTC
Requires
- php: ^7.2.5|^8.0
- backpack/crud: 4.1.*
- illuminate/support: ^7.0|^8.0
Requires (Dev)
- mockery/mockery: ^1.1
- phpunit/phpunit: ~8.0|~9.0
- sempro/phpunit-pretty-print: ^1.0
- 1.3.0
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.0
- dev-master / 1.0.x-dev
- 1.0.0
- 0.8.3
- 0.8.2
- 0.8.1
- 0.8.0
- 0.7.3
- 0.7.2
- 0.7.1
- 0.7.0
- 0.6.0
- 0.5.1
- 0.5.0
- 0.4.1
- 0.4.0
- 0.3.2
- 0.3.1
- 0.3.0
- 0.2.1
- 0.2.0
- 0.1.6
- 0.1.5
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1.0
- dev-dependabot/composer/symfony/http-kernel-5.4.20
- dev-dependabot/composer/guzzlehttp/guzzle-7.4.5
- dev-dependabot/composer/guzzlehttp/psr7-2.2.1
- dev-dependabot/composer/doctrine/dbal-3.1.4
This package is auto-updated.
Last update: 2024-08-30 01:57:50 UTC
README
此包旨在通过使用laravel的facade
,在使用Backpack CRUD
时提供更友好的接口。
根据Backpack\Crud
的工作方式,此包依赖于尾部方法来执行魔法。目前这些必需的尾部方法包括:
public function toField($extraConfigToBeMerged = []): CrudPanel
public function toColumn($extraConfigToBeMerged = []): CrudPanel
public function toFilter($extraConfigToBeMerged = []): void
所有其他方法都返回当前实例$this
。为了进行方法链,请参考类源代码中的API示例
CrudColumn::init(string $label, ?string $name = null, $priority = null): self CrudField::init(string $label, ?string $name = null, $width = null): self
有两个步骤的计划
- 包括所有
Backpack CRUD
列、字段和过滤器 - 将辅助类合并为一个。
目前还没有编写测试。
安装
通过Composer
$ composer require justinmoh/backpack-helper:~0.2
用法
use \JustinMoh\BackpackHelper\CrudHelper; use \JustinMoh\BackpackHelper\Facades\Columns\DatetimeColumn; use \JustinMoh\BackpackHelper\Facades\Columns\SelectColumn; use \JustinMoh\BackpackHelper\Facades\Columns\TextColumn; use \JustinMoh\BackpackHelper\Facades\Fields\RadioField; use \JustinMoh\BackpackHelper\Facades\Fields\Select2FromArrayField; use \JustinMoh\BackpackHelper\Facades\Fields\UploadMultipleField; use \JustinMoh\BackpackHelper\Facades\Filters\Select2MultipleFilter; use \JustinMoh\BackpackHelper\Facades\Filters\SimpleFilter; // ... protected function setupListOperation() { // a datetime column with priority `1` DatetimeColumn::init('Date & Time Check In', 'datetime_check_in', 1) ->toColumn(); // you can also separate the method chains. DatetimeColumn::label('Date & Time Check Out')->name('datetime_check_out') ->toColumn(); // auto guessing `name` with `label` TextColumn::label('Name')->toColumn(); // backpack's `select` column type SelectColumn::init('Category', 'category_id') ->entity('category')->attribute('display_name')->model(\App\Category::class) ->toColumn(); } // ... protected function setupCreateOperation() { // a field with wrapperAttribute col-md-6 (or col-lg-6 ?) UploadMultipleField::init('Attach Documents', 'customer_documents', 6) ->toField(); // an inline yes no radio button, disabled RadioField::init('Is Vip')->width(3)->inline() ->options(CrudHelper::YES_NO_OPTIONS) ->disabled()->toField(); // select 2 Select2FromArrayField::init('Room Type', 'room_type_id', 4)->required() ->options(\App\RoomType::all()->prepend('')->pluck('name','id')->toArray()) ->toField(); } // ... protected function setupListOperation() { SimpleFilter::init('Only New', 'status_new') ->query(function() { \CRUD::addClause('onlyNew'); })->toFilter(); Select2MultipleFilter::label('Select Room Type(s)') ->options( function () { return \App\RoomType::all()->pluck('name', 'id')->toArray(); } )->query( function ($value) { \CRUD::addClause('whereInRoomTypes', json_decode($values)); } )->toFilter(); }
变更日志
请参阅变更日志以获取有关最近更改的更多信息。
测试
$ composer test
贡献
请参阅contributing.md以获取详细信息和一个待办事项列表。
安全
如果您发现任何安全相关的问题,请通过作者邮箱联系,而不是使用问题跟踪器。
致谢
许可证
许可证。请参阅许可证文件以获取更多信息。