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();
你不仅可以使用枚举, 而且这个包还支持各种来源的数据, 包括:
- 模型
- 模型状态(通过Spatie模型状态)
- 数组
- 手动操作
另一个整洁的功能是,你可以把你的选项变成一个验证规则。
$request->validate([
// ['in:frodo,sam,merry,pippin']
'hobbit' => Options::forEnum(Hobbit::class)->toValidationRule()
]);
你可以在GitHub上了解更多关于这个包的信息, 获得完整的安装说明。