kirschbaum-development/nova-inline-select

Laravel Nova应用的内联选择字段。

2.0.1 2022-05-23 17:05 UTC

This package is auto-updated.

Last update: 2024-08-23 21:49:35 UTC


README

Nova Inline Select banner

Laravel Nova应用的内联选择字段

Latest Version on Packagist Total Downloads Actions Status

本包包含一个Nova选择字段,可以从索引和详情视图实时更新字段值。

screenshot of the inline select field screenshot of the inline select field ready for submitting

要求

此Nova字段需要Nova 1.0或更高版本。

安装

您可以通过composer在Laravel应用中安装此包,该应用使用Nova

composer require kirschbaum-development/nova-inline-select

使用

接下来您可以在您的Nova资源中使用KirschbaumDevelopment\Nova\InlineSelect字段

namespace App\Nova;

use KirschbaumDevelopment\Nova\InlineSelect;

class User extends Resource
{
    // ...

    public function fields(Request $request)
    {
        return [
            // ...

            InlineSelect::make('Status'),

            // ...
        ];
    }
}

就像使用Nova的Select字段一样使用InlineSelect字段。但是,现在有魔法...

内联编辑

默认情况下,内联选择字段就像一个普通的下拉字段一样工作。要启用内联编辑功能,我们可以使用inlineOnIndex()inlineOnDetail()方法。

InlineSelect::make('Status')->options($options)
    ->inlineOnIndex()
    ->inlineOnDetail(),

上述内联选择字段将在索引和详情视图中显示。当修改下拉字段时,会显示一个按钮,允许您提交更改。如果您希望字段自动提交更改,只需添加enableOneStepOnIndex()enableOneStepOnDetail()

InlineSelect::make('Status')->options($options)
    ->inlineOnIndex()
    ->enableOneStepOnIndex(),

索引视图中的内联选择字段现在将自动提交更改的值。您也可以选择继续使用旧的disableTwoStepOnIndex()方法,它实际上会调用enableOneStepOnIndex()

您还可以将内联选择添加到透镜中。使用inlineOnLens()方法。自动提交与enableOneStepOnLens()相同。

InlineSelect::make('Status')->options($options)
    ->inlineOnLens()
    ->enableOneStepOnLens(),

使用标签显示

此方法与Nova的选择字段的工作方式相同。它将显示选项值而不是选项键。

InlineSelect::make('Status')->options($options)
    ->displayUsingLabels(),

将闭包作为options()参数使用

您可以将闭包传递给options方法。它必须返回一个键值对数组。

InlineSelect::make('Status')
    ->options(function () {
        return [
            'one' => 'foo',
            'two' => 'bar',
        ];
    }),

验证注意事项

在模型上的字段是required的情况下,这是很常见的,需要采取额外步骤以确保内联选择更新持续存在并且不会引发错误。需要将验证规则sometimes添加到任何required字段的updateRules()方法上。

Text::make('Email')
    ->rules('required', 'email')
    ->updateRules('sometimes'),

变更日志

有关最近更改的更多信息,请参阅CHANGELOG

贡献

有关详细信息,请参阅CONTRIBUTING

安全

如果您发现任何安全相关的问题,请通过电子邮件brandon@kirschbaumdevelopment.comnathan@kirschbaumdevelopment.com报告,而不是使用问题跟踪器。

致谢

赞助

此包的开发由Kirschbaum Development Group赞助,这是一家以解决问题、团队建设和社区为中心的开发者驱动型公司。了解更多信息关于我们加入我们

许可

MIT许可(MIT)。有关更多信息,请参阅许可文件