学习Laravel的LaravelOptionsbySpatie包,用于创建不同来源的选项列表

100 阅读1分钟

LaravelOptionsbySpatie是一个包,用于创建不同来源的选项列表。

一个典型的Web应用程序总是有许多带有选项的选择字段。这个包可以简单的将枚举, 模型, 状态, 和数组转换为一个统一的选项结构.

一个来自readme的例子说明了这个包是如何帮助简化Laravel应用程序中选择选项的工作。给定一个枚举,你可以使用这个包来构建选项。

enum Hobbit: string
{
    case Frodo = 'frodo';
    case Sam = 'sam';
    case Merry = 'merry';
    case Pippin = 'pippin';
}
 
Options::forEnum(Hobbit::class)->toArray();
 
/* returns the following array
[
    ['label' => 'Frodo', 'value' => 'frodo'],
    ['label' => 'Sam', 'value' => 'sam'],
    ['label' => 'Merry', 'value' => 'merry'],
    ['label' => 'Pippin', 'value' => 'pippin'],
]
*/
 
// Or return JSON
Options::forEnum(Hobbit::class)->toJson();

你不仅可以使用枚举, 而且这个包还支持各种来源的数据, 包括:

另一个整洁的功能是,你可以把你的选项变成一个验证规则。

$request->validate([
    // ['in:frodo,sam,merry,pippin']
    'hobbit' => Options::forEnum(Hobbit::class)->toValidationRule()
]);

你可以在GitHub上了解更多关于这个包的信息, 获得完整的安装说明。