creode/collapsible-radios

为 Laravel Nova 提供的单选可折叠按钮模块。

1.1.0 2023-11-13 09:14 UTC

This package is auto-updated.

Last update: 2024-09-13 15:43:30 UTC


README

包含一个 Laravel Nova 字段,用于构建父子关系的可折叠单选按钮。

Field in use

安装

您可以通过 composer 安装此软件包

composer require creode/collapsible-radios

用法

要创建一个新字段的实例,只需在 Nova 资源的 fields 方法中使用 CollapsibleRadios 类。您需要确保您的选项提供以下字段

  • label - 要显示的选项标签
  • value - 选项要使用的值
  • id - 选项的 ID
  • parent_id - 父选项的 ID

这些字段用于根据 parent_ids 构建可折叠单选按钮。

以下是一个如何接受选项输入的基本示例。

use Creode\CollapseRadios\Field\CollapsibleRadios;

CollapsibleRadios::make('Model', 'model_id')
    ->options([
        [
            'label' => 'Option 1',
            'value' => 1,
            'id' => 1,
            'parent_id' => null,
        ],
        [
            'label' => 'Option 2',
            'value' => 2,
            'id' => 2,
            'parent_id' => 1,
        ],
                [
            'label' => 'Option 3',
            'value' => 3,
            'id' => 3,
            'parent_id' => 2,
        ]
    ])
    ->nullable()
    ->rules('required')

这将生成以下结构

  • 选项 1
    • 选项 2
      • 选项 3

或者如果您想轻松地将模型数据映射到它

use Creode\CollapseRadios\Field\CollapsibleRadios;

CollapsibleRadios::make('Model', 'model_id')
    ->options(
        Model::all()->map(
            function ($model) {
                return [
                    'label' => $model->name,
                    'value' => $model->id,
                    'id' => $model->id,
                    'parent_id' => $model->parent_id ?: null,
                ];
            }
        )
    )
    ->nullable()
    ->rules('required')

路线图

随着我们对这个项目需求的不断发展,我们计划实现以下功能

  • 允许选择默认选项
  • 允许选择多个选项

变更日志

请参阅 CHANGELOG 了解最近更改的更多信息。

贡献

请参阅 CONTRIBUTING 了解详细信息。

安全漏洞

请参阅 我们的安全策略 了解如何报告安全漏洞。

致谢

许可证

MIT 许可证(MIT)。请参阅 许可证文件 了解更多信息。