我不知道我在这里做错了什么,但是这段代码
$models = Model::with(['relationship' => function ($query) {
$query->whereBetween('date', [$this->today->copy()->startOfDay(), $this->today->copy()->endOfDay()]);
}])->where('status', 'active')->where('position', '!=', 'dev')->where('status', '=', 'good')->get();
没有按预期工作。它确实加载了它在对象中存在的关系,但问题是我不能做这样的事情
foreach($models as $model)
{
echo $model->relationship->where('status', '=', 'somestatus')->count() . '<br>';
}
它返回0但是当我签入集合时它不是0.你们知道为什么这段代码不起作用?谢谢你们。
答案 0 :(得分:1)
您需要从'='
中删除->relationship->where('status', 'somestatus')
(中间参数)。由于您是在集合it only takes 2 parameters上进行的。
所以这样:
foreach($models as $model)
{
echo $model->relationship->where('status', 'somestatus')->count() . '<br>';
}