gpt4 book ai didi

php - Laravel Eloquent 中的动态模型过滤器

转载 作者:行者123 更新时间:2023-11-29 05:57:13 25 4
gpt4 key购买 nike

我正在寻找一种在 Laravel 中制作动态和全局模型过滤器的方法。我在我的 User.php 模型中设想了一个如下所示的函数:

public function filter() {
return ($someVariable === true);
}

每当我使用 Eloquent 的查询构建器进行查询时,我只希望用户在上面的过滤器返回 true 时出现在集合中。我本以为存在这样的功能,但快速查看文档表明并非如此。还是我错过了?

最佳答案

我相信您正在寻找的是查询范围。

它们是可以在全局或局部上下文中定义的方法,可以改变给定模型的当前查询。

https://laravel.com/docs/5.5/eloquent#query-scopes

例如:

假设我有一个名为“Teams”的数据库表,其中有一列名为“Wins”。如果我想检索所有在 A 和 B 之间获胜的团队,我可以在团队模型上编写以下本地范围方法:

public function scopeWinsBetween($query, int $min, int $max)
{
return $query->whereBetween('wins', $min, $max);
}

它可以这样调用:

$teams = Teams::winsBetween(50, 100)->get();

关于php - Laravel Eloquent 中的动态模型过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48362302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com