首页 > 解决方案 > Laravel Nova 相关查询的参数太少

问题描述

我有一个关系需要根据它用于填充的 Laravel Nova 字段进行不同的过滤。

我正在使用相关查询来过滤这两个字段中的每一个的可用选项。

我的 Process_type 资源中的两个字段如下:

BelongsTo::make('Default', 'process_justification', Process_justification::class)
BelongsToMany::make('Options', 'process_justifications', Process_justification::class)

相关查询如下所示:

public static function relatableProcess_justifications(NovaRequest $request, $query, Field $field)
        {
           
            if ($field instanceof BelongsTo) {
                //query builder to filter options
                ...........
            } else {
                //return all options
                return $query;
            }
        }

此模式来自 Laravel Nova 关于动态相关模型的文档(https://nova.laravel.com/docs/3.0/resources/authorization.html#dynamic-relatable-methods)它描述了将字段作为第三个参数添加到相关模型查询,然后在条件中使用它来选择过滤器逻辑。

我得到的错误是

函数 App\Nova\Process_type::relatableProcess_justifications() 的参数太少,通过了 2 个,预期正好有 3 个

根据文档,我的make()电话有三个参数,知道我缺少什么吗?

我在 Laravel 7.x 和 Nova 3.x

标签: laravellaravel-nova

解决方案


推荐阅读