【问题标题】:Impose condition on BelongsTo in Laravel Nova在 Laravel Nova 中对 BelongsTo 施加条件
【发布时间】:2019-06-07 15:54:25
【问题描述】:

在以下代码中,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() 搜索整个数据库。我希望它只显示相关条目。

【问题讨论】:

    标签: laravel eloquent laravel-nova


    【解决方案1】:

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

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

    【讨论】:

    • 这是一个不错的解决方法。一定会有更好的办法。我不知道它是什么。
    猜你喜欢
    • 2020-05-27
    • 2019-05-12
    • 2021-03-19
    • 1970-01-01
    • 2022-08-05
    • 2019-12-08
    • 2023-04-04
    • 1970-01-01
    • 2020-05-25
    相关资源
    最近更新 更多