限制 Laravel Nova 资源的 BelongsTo 选择字段中返回的选项数量

时间:2021-01-29 20:27:12

标签: laravel laravel-nova

我试图限制在 BelongsTo 选择中为 Set 资源返回的状态数量。我的状态表使用 parent_id 来确定将哪些状态组合在一起。

当我创建一个新集合时,我希望只看到相关模型中的状态,而不是加载表中的所有状态。

我曾尝试使用 fillUsingdisplayUsing 来缩小结果范围,但没有奏效。

以下是相关来源。

新星资源 - 套装

public function fields(Request $request)
{
    return [
        ID::make(__('ID'), 'id')->sortable(),
        BelongsTo::make(__('Status'), 'status'),
    ];
}

Eloquent Model - Set

public function status()
{
    return $this->belongsTo(Status::class)
        ->where('parent_id', 5);
}

1 个答案:

答案 0 :(得分:0)

我在发帖一小时后就想通了。

您需要覆盖 Nova 资源上的 indexQuery 函数 - Set

public static function indexQuery(NovaRequest $request, $query)
{
    return $query->where('parent_id', 5);
}