【发布时间】:2015-06-17 23:20:56
【问题描述】:
我在 Laravel 5 中有这段代码,使用 Eloquent,运行良好:
$filterTask = function($query) use ($id) {
$query->where('taskid', $id);
};
User::whereHas('submissions', $filterTask)->with(['submissions' => $filterTask])->get();
基本上,目标是只获取那些提交过滤后的提交的用户,其中任何一个都有。 但是,使用相同的回调函数同时运行 whereHas 和 with 方法似乎很浪费。有没有办法简化它?
谢谢。
【问题讨论】:
-
不,没有其他方法(使用雄辩的关系查询 ofc)。为什么会浪费?
-
好吧,因为我们要过滤两次提交的条件;我只是希望有一种解决方案可以使它成为一个查询而不是更多,但是@lukasgeiter 说得很清楚。
-
为什么这个答案票数太少?
标签: php laravel eloquent laravel-5