reedware / nova-value-toggle
A Laravel Nova 字段,用于根据其他字段的值切换字段。
dev-master / 0.1.x-dev
2020-05-22 16:34 UTC
Requires
- php: >=7.1.0
- illuminate/contracts: >=5.1
- illuminate/support: >=5.1
This package is auto-updated.
Last update: 2024-09-07 21:00:57 UTC
README
安装
使用 composer 安装此包。
composer require reedware/nova-value-toggle
此包使用自动发现,因此不需要您手动添加服务提供者。如果您选择手动操作,可以在服务提供者列表中包含以下类
\Reedware\NovaValueToggle\FieldServiceProvider::class
使用方法
此包创建一个新的 ValueToggle
字段,该字段用于包装现有字段,以便您可以根据另一个字段的值切换字段的可见性(在详细页面和编辑页面均可)。
首先,在您可以使用该字段之前,您必须将其包含在您的代码中
use Reedware\NovaValueToggle\ValueToggle;
例如,假设您有一个 Flight
模型和资源。以下是在您的 Flight
资源中可能看到的字段
/** * Get the fields displayed by the resource. * * @param \Illuminate\Http\Request $request * * @return array */ public function fields(Request $request) { return [ ID::make('ID', 'id')->sortable(), Text::make('Name', 'name')->sortable()->rules('required'), Select::make('Lands On', 'lands_on')->options([ 'land' => 'Land', 'water' => 'Water' ]), Number::make('Wheel Count', 'wheel_count')->min(1)->max(1000)->step(1) }
对于在水中降落的航班,您希望假设轮子数量为 0。您可以提供验证,但这样您将有一个无用的字段占用更新表单的可见空间。相反,您可以在预计航班将在水中降落时隐藏该字段。
这就是 ValueToggle
字段发挥作用的地方
/** * Get the fields displayed by the resource. * * @param \Illuminate\Http\Request $request * * @return array */ public function fields(Request $request) { return [ ID::make('ID', 'id')->sortable(), Text::make('Name', 'name')->sortable()->rules('required'), Select::make('Lands On', 'lands_on')->options([ 'land' => 'Land', 'water' => 'Water' ]), ValueToggle::make(Number::make('Wheel Count', 'wheel_count')->min(1)->max(1000)->step(1), function($toggle) { return $toggle->where('lands_on', '=', 'land'); }) ]; }
我们仍然有原始的 "Wheel Count" 字段,但它已经被传递给 ValueToggle
的第一个参数。第二个参数是一个闭包,它描述了您希望在何时显示该字段。