在 Laravel Nova 中,您可以使用自定义操作将操作显示为特定行上的下拉列表。以下是如何实现此功能的步骤:
php artisan nova:action
来创建一个新的操作。例如:php artisan nova:action MyCustomAction
这将在 app/Nova/Actions
目录下创建一个名为 MyCustomAction.php
的文件。
MyCustomAction.php
文件,您将看到一个名为 handle
的方法。在此方法中,您可以编写您的操作逻辑。但是,为了将操作显示为下拉列表,我们需要重写 displayOnRow
方法。例如:public function displayOnRow($model)
{
return true;
}
这将确保操作显示在每行上。
resources/views/nova/actions
目录下创建一个名为 my_custom_action.blade.php
的文件。如果目录不存在,请创建它。my_custom_action.blation.php
文件中,编写以下代码以创建一个下拉列表:@php
$options = [
'option1' => 'Option 1',
'option2' => 'Option 2',
'option3' => 'Option 3',
];
@endphp
<select name="action" id="action">
<option value="">Select an action</option>
@foreach($options as $key => $value)
<option value="{{ $key }}">{{ $value }}</option>
@endforeach
</select>
您可以根据需要自定义 $options
数组中的选项。
MyCustomAction.php
文件中重写 render
方法,以便使用我们刚刚创建的自定义视图。例如:use Laravel\Nova\Fields\Field;
public function render()
{
return Field::make('Action', 'action')
->onlyOnForms()
->resolveUsing(function ($value, $resource, $attribute) {
return view('nova.actions.my_custom_action');
});
}
现在,当您在 Laravel Nova 资源中查看数据表时,您应该会看到特定行上的下拉列表操作。
领取专属 10元无门槛券
手把手带您无忧上云