kirschbaum-development/ nova-inline-select
Laravel Nova应用的内联选择字段。
Requires
- php: ^8.0
Requires (Dev)
- laravel/nova: ^4.2
- orchestra/testbench: ^7.4
- phpunit/phpunit: ^9.5.10
README
Laravel Nova应用的内联选择字段
本包包含一个Nova选择字段,可以从索引和详情视图实时更新字段值。
要求
此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.com或nathan@kirschbaumdevelopment.com报告,而不是使用问题跟踪器。
致谢
赞助
此包的开发由Kirschbaum Development Group赞助,这是一家以解决问题、团队建设和社区为中心的开发者驱动型公司。了解更多信息关于我们或加入我们!
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件。