完美驱动 / 推荐
自动为模型和枚举创建路由,以便在Laravel支持的SPA前端中引用
1.2.0
2024-06-14 10:39 UTC
Requires
- php: ^8.2
- illuminate/contracts: ^10.0|^11.0
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- larastan/larastan: ^2.9
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^9.0.0||^8.22.0
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-laravel: ^2.3
- phpstan/extension-installer: ^1.3
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-phpunit: ^1.3
This package is auto-updated.
Last update: 2024-09-11 20:56:55 UTC
README
要在一个SPA表单中填充下拉菜单(或其他引用方式),可以使用一个单独的端点来创建名称/值对的数组。此包允许您自动为您的模型和枚举创建路由,以便在Laravel支持的SPA前端中引用。
安装
您可以通过composer安装此包
composer require perfect-drive/referable
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="referable-config"
这是发布配置文件的内容
return [ /* * The directories to search for Referable classes. */ 'directories' => [ app_path('Enums'), app_path('Models'), ], /* * The middleware array to use for the Referable routes. */ 'middleware' => ['api', 'auth:sanctum'], /* * The key name to use for the referable key in the json response. */ 'key_name' => 'value', /* * The value name to use for the referable value in the json response. */ 'value_name' => 'title', /* * The base url for the referable routes. */ 'base_url' => 'spa/referable/', ];
用法
在模型上
<?php declare(strict_types=1); namespace App\Models; use App\Interfaces\ReferableInterface; use App\Traits\ReferableModel; use Illuminate\Database\Eloquent\Model; class ProjectType extends Model implements ReferableInterface { use ReferableModel;
这将注册以下路由
GET /spa/referable/project_type
在枚举上
<?php declare(strict_types=1); namespace App\Enums\User; use App\Interfaces\ReferableInterface; use App\Traits\ReferableEnum; enum UserStatus: string implements ReferableInterface { use ReferableEnum;
这将注册以下路由
GET /spa/referable/user_status
模型作用域
可以使用'ReferableScope'属性来定义一个自定义作用域(在模型上),用于过滤可引用项并为其创建一个附加路由。
#[ReferableScope]
public function scopeActive(Builder $query): Builder
{
return $query->where('active', true);
}
这将注册以下路由
GET /spa/referable/project_type/active
枚举作用域
您可以使用'ReferableScope'属性来定义一个自定义作用域方法(在枚举上),用于过滤可引用项并为其创建一个附加路由。
#[ReferableScope]
public function active(): bool
{
return in_array($this, [
self::FIRST,
self::SECOND,
], true);
}
测试
composer test
变更日志
请参阅变更日志以获取有关最近更改的更多信息。
安全漏洞
如果您发现任何与安全相关的问题,请发送电子邮件至carl.klein@perfect-drive.nl。
致谢
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。