medalink/laravel-reflects-constants

一个辅助包,帮助获取laravel中模型类的常量。

v2.2.1 2023-08-31 20:46 UTC

This package is auto-updated.

Last update: 2024-08-30 01:43:48 UTC


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 支持黑名单、前缀、返回带前缀的常量名以及可读性切换。有关如何使用这些功能的更多详细信息,请参阅源代码。