berthott / laravel-crudable
Laravel CRUD 资源助手
3.0.5
2023-10-16 11:40 UTC
Requires
- berthott/laravel-scopeable: ^3.0.0
- berthott/laravel-targetable: ^3.0
- haydenpierce/class-finder: ^0.4.3
- spatie/laravel-query-builder: ^5.0
Requires (Dev)
- doctrine/dbal: ^3.3
- orchestra/testbench: ^8.0
- phpunit/phpunit: ^10.0
README
Laravel CRUD 路由助手。
通过向模型添加特性,轻松添加完整的 CRUD 路由 + 控制器。
安装
$ composer require berthott/laravel-crudable
概念
该包实现了一种通用的方法,将 CRUD 路由的设置从多个不同的位置(路由 / 控制器)移动到模型本身。这不会阻止您添加自己的自定义路由和控制器。如果需要以特定顺序创建路由,则存在辅助方法。
前端连接
索引路由没有实现分页。在实现与此路由的连接时需要考虑这一点,因为这可能导致巨大的有效载荷。
- 尽量在关系包含大量数据时避免使用预加载关系(不要在
$with
数组中使用它们)。 - 如果您只想在显示路由中预加载关系,可以使用
showRelations()
。
将来可以在这里使用可选的分页。
使用方法
- 创建您的表和相应的模型,例如使用
php artisan make:model YourModel -m
- 将
Crudable
特性添加到您刚生成的模型中。 - 该包将注册这些标准 API CRUD 路由(请参阅 API 资源路由)。
- 索引,get
yourmodels/
=> 获取所有实体 - 显示,get
yourmodels/{yourmodel}
=> 获取单个实体 - 创建,post
yourmodels/
=> 创建新的实体 - 更新,put
yourmodels/{yourmodel}
=> 更新实体 - 销毁,delete
yourmodels/{yourmodel}
=> 删除实体
- 索引,get
- 此外,它还注册了
- 批量删除,delete
yourmodels/destroy_many
=> 通过其给定的 ID 删除多个实体 - 模式,get
yourmodels/schema
=> 获取数据库模式
- 批量删除,delete
- 通过实现以下方法之一添加关系
attachables()
将现有相关模型附加到模型creatables()
创建新的相关模型并将它们附加到模型customRelations()
为将关系添加到模型实现您自己的行为
- 有关如何设置特定功能的更多信息,请参阅
\berthott\Crudable\Models\Traits\Crudable
。
选项
要更改默认选项,请使用
$ php artisan vendor:publish --provider="berthott\Crudable\CrudableServiceProvider" --tag="config"
- 继承自 laravel-targetable
namespace
: 字符串或包含一个或多个应监控配置特性的命名空间的数组。默认为App\Models
。namespace_mode
: 定义命名空间的搜索模式。ClassFinder::STANDARD_MODE
将仅查找精确匹配的命名空间,ClassFinder::RECURSIVE_MODE
将查找所有子命名空间。默认为ClassFinder::STANDARD_MODE
。prefix
: 定义路由前缀。默认为api
。- 通用包配置
middleware
: 应应用于所有生成路由的所有中间件的数组。默认为['api']
。
架构
- 该软件包依赖于 laravel-targetable 通过特质将特定功能连接到 Laravel 模型实体(
Crudable
)。
兼容性
已与 Laravel 10.x 进行过测试。
许可证
请参阅 许可证文件。版权所有 © 2023 Jan Bladt。