首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在laravel中使用allowedFilter()表示关系

在laravel中使用allowedFilter()表示关系
EN

Stack Overflow用户
提问于 2021-04-28 07:40:49
回答 1查看 1.3K关注 0票数 0

你好,我正在尝试从关系表中过滤数据。就像桌子是

代码语言:javascript
运行
复制
TrainingVideo(table)
   -> Media(table)

代码,如

代码语言:javascript
运行
复制
$a = QueryBuilder::for(TrainingVideo::class)
            ->with('grade','media')
            ->allowedFilters(['name', 'grade_id'], allowedFilters(AllowedFilter::exact('media.is_help_center', null, false))
            ->get();

TrainingVideo字段为name,grade_id字段为is_help_center。

试图过滤数据并得到错误,例如

“请求的过滤器name, grade_id是不允许的。允许的过滤器是is_help_center。”请参考此链接https://spatie.be/docs/laravel-query-builder/v3/features/filtering#:~:text=An%20allowed%20filter%20can%20be,AllowedFilter%3A%3Apartial()%20filters.

中的异源筛选器

EN

回答 1

Stack Overflow用户

发布于 2021-04-28 09:05:36

我真的不明白你怎么看得到的?

allowedFilters(AllowedFilter::exact('media.is_help_center', null, false)

也许我遗漏了一些东西,但据我所知,没有allowedFilters帮助函数。

不管怎样,你也许可以

代码语言:javascript
运行
复制
$a = QueryBuilder::for(TrainingVideo::class)
            ->with('grade','media')
            ->allowedFilters(
                array_merge(
                    ['name', 'grade_id'],
                    AllowedFilter::exact('media.is_help_center', null, false)
                )
            )
            ->get();

不要忘记在文件顶部导入AllowedFilter

use Spatie\QueryBuilder\AllowedFilter;

一旦设置完毕,is就可以工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67295851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档