向Laravel Nova中的BelongsTo施加条件

时间:2019-06-07 15:54:25

标签: laravel eloquent laravel-nova

在以下代码中,BelongsTo::make('Answer', 'answer', Alternative::class)->searchable()返回数百万条记录。

我想用以下条件限制该字段:ID必须在HasMany::make('Alternatives')的ID之内

Question.php(Nova资源)

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()搜索整个数据库。我希望它仅显示相关条目。

1 个答案:

答案 0 :(得分:0)

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

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