【发布时间】:2016-03-16 01:24:36
【问题描述】:
它似乎不起作用,当我在其中使用“with”和函数时,后来又尝试使用“has”函数。代码如下,应该更容易理解:
$users = Users::where("active","=", "1")->with(['photos' => function($q){
$q->where('type','!=', 2);
}])->has('photos', '>', 3)->paginate(8);
}
看起来,只有当用户有 3 张不是类型 2 的照片时,它才应该返回用户。但它不关心“where”子句,并且在不检查类型的情况下返回它。
我怎样才能实现我的目标?
谢谢!
【问题讨论】:
-
哦,我试过了:->whereHas('photos', function ($query) { $query->where('type', '!=', '2'); } ) 但这样我就不能要求超过 3 张照片。因为“whereHas”函数会检查是否至少有 1...
-
has将检查是否至少有 1 个。使用whereHas,您可以在其闭包中使用where。
标签: laravel eloquent where relation