在 Laravel Nova 中对 BelongsTo 施加条件

Impose condition on BelongsTo in Laravel Nova

在下面的代码中,BelongsTo::make('Answer', 'answer', Alternative::class)->searchable() returns 百万条记录。

我想用一个条件限制这个字段:它的 ID 必须在 HasMany::make('Alternatives')

的 ID 之内

Question.php(新星资源):

public function fields(Request $request)
{
    return [
        ID::make()->sortable(),
        CKEditor::make('Wording', 'wording')->alwaysShow(),
        Boolean::make('Verified', 'is_verified'),
        Select::make('Type')->options([
            'multiple_choice' => 'Multiple Choice',
            'right_or_wrong' => 'Right or Wrong'
        ]),
        Tags::make('Level')->type('level')->single(),
        Tags::make('Subjects')->type('topic'),
        HasMany::make('Alternatives'),
        BelongsTo::make('Answer', 'answer', Alternative::class)->searchable()
    ];
}

我的意思是:一个问题有很多选择。一个问题有一个答案。 我只想列出该字段中可能的答案。恰好是 HasMany::make('Alternatives'),

中列出的那些

现在,BelongsTo::make('Answer', 'answer', Alternative::class)->searchable() 搜索整个数据库。我希望它只显示相关条目。

Select::make() 可以在这种情况下使用:它查询限制(匹配的外键 - 或任何其他 where 子句)并创建一个包含结果的 select 框。

Select::make('Answer', 'answer_id')->options($alts->pluck('letter', 'id')),