我在Laravel中使用whereHas
来构建查询:
})->whereHas('results', function ($query) use ($issued, $mode, $request) {
if (($request->get("filter"))) {
$query->where('issued', 0);
}
})->orderBy('created_at', 'desc')->paginate();
此问题返回零行,因为表results
中现在有
$query->where('issued', 0);
如何做到whereHas
作为LEFT JOIN
?现在它可以用作INNER JOIN
答案 0 :(得分:4)
whereHas
仅返回具有您正在寻找的关系的模型。如果您只想限制返回的Results
,请尝试with
:
$models = Model::with(['results' => function($query){
$query->where('issued', 0);
}])->get();