【发布时间】:2018-01-20 23:53:21
【问题描述】:
我正在寻找一种在 Laravel 中制作动态和全局模型过滤器的方法。 我在我的 User.php 模型中想象一个类似以下的函数:
public function filter() {
return ($someVariable === true);
}
每当我使用 Eloquent 的查询构建器进行查询时,我只希望用户在上面的过滤器返回 true 时出现在集合中。我会认为存在这样的功能,但快速查看文档表明并非如此。还是我错过了?
【问题讨论】:
-
用返回用户集合展示你的函数
-
@IlyaYaremchuk 我有数百个。不过,他们几乎都使用 Eloquent 的查询构建器(所以类似于
User::with(...)->where(...)........->groupBy(...)->get())。同样对于User::find(...),我想在过滤器未通过时返回null。我可以手动执行的原始查询是关于查询生成器的结果。谢谢。 -
可能是
if($someVariable === false){return null;}else{return User::find(...);}:) -
@IlyaYaremchuk 我正在寻找一个全球解决方案,我有一个包含许多控制器和模型的项目。我不想在访问此模型的任何地方都使用 if 语句。
-
$someVariable来自哪里?
标签: php mysql laravel eloquent