首页 > 解决方案 > 如何过滤 Laravel Nova 选择字段的选项

问题描述

我有一个Process_type类型的资源。

它与Process_event具有 BelongsToMany 关系

它还将默认Process_event存储为 BelongsTo 关系 - 我希望对此的可能选项仅限于 BelongsToMany 关系中的选项,而不是数据库中的整个流程事件集。

我期望能够限制BelongsTo::make()字段上的选项,但找不到这样做的方法。所以我回退到使用 Select 字段,并通过 options() 方法传递选项。

这就是我的字段方法目前的样子

public function fields(Request $request)
{
    $options = [];
    $options['process_events'] = \App\Process_event::all()->pluck('title','id');
    return [
        ID::make()->sortable(),
        Text::make('Title')->sortable(),
        Select::make('Process Event')->options($options['process_events']),
        BelongsToMany::make('Process Events', 'process_events', Process_event::class)
    ];
}

就目前而言,我仍然将所有流程事件作为选项。如何通过传入的对象访问当前实体,以便在模型上$request查找。->process_events()我找不到任何关于此的文档。

这可能吗?如果没有,有什么更好的方法来做到这一点?

标签: laravellaravel-nova

解决方案


推荐阅读