medalink / laravel-reflects-constants
一个辅助包,帮助获取laravel中模型类的常量。
v2.2.1
2023-08-31 20:46 UTC
Requires
- php: ^7.2.5|^8.0.2
- illuminate/support: ^6.0|^7.0|^8.0|^9.0|^10.0
README
一个辅助包,帮助获取模型类的常量。
composer require medalink/laravel-reflects-constants
如何使用
假设你有一个定义了不同类型常量的类。
<?php class ProductInformation { use \Medalink\Reflects\Constants; /** * Optional constant blacklist, anything in here will be filtered */ public $reflectedConstantsBlacklist = [ 'TEST', ]; const TYPE_OVERVIEW = 'OVERVIEW'; const TYPE_SAFETY = 'SAFETY'; const TYPE_WARRANTY = 'WARRANTY'; const TYPE_PRODUCT_INFO = 'PRODUCT_INFO'; const TEST = 'TEST'; }
此包允许你将这些常量作为可读性高的数组返回。这在将数据应用于应用程序的多个地方非常有用。让我们看看如何使用此包帮助工厂选择一个随机类型。
$factory->define(ProductInformation::class, function (Faker $faker) { return [ 'type' => $faker->randomElement(ProductInformation::getReflectedConstants('TYPE_')), ]; });
结果数组将如下所示
$types = ProductInformation::getReflectedConstants('TYPE_'); $types = [ 'Overview', 'Safety', 'Warranty', 'Product Info' ];
让我们看看如何使用此方法填充laravel nova的下拉选项。
Select::make('Type') ->options(ProductInformation::getReflectedConstants('TYPE_')) ->sortable(),
getReflectedConstants 支持黑名单、前缀、返回带前缀的常量名以及可读性切换。有关如何使用这些功能的更多详细信息,请参阅源代码。