我的问题是:
Description::whereHas('expenses', function($query) {
$query->where('date', $this->date);
})->with('expenses')->get();上面的查询返回给定日期的所有描述,但它返回该描述的所有费用,而不是给定日期的费用。我不能理解为什么会这样,我想首先理解这一点。这是因为with('expenses')吗?我只是急于加载每个描述的所有费用?使用whereHas,我只返回在给定日期至少有一项费用的所有描述?
如果以上所有情况都为真,我如何返回给定日期的所有描述,包括给定日期的费用?
描述模型:
public function expenses()
{
return $this->hasMany(Expense::class);
}费用模型:
public function description()
{
return $this->belongsTo(Description::class);
}发布于 2017-08-09 16:09:34
您只需要过滤应该加载哪些Description对象。您应该将相同的过滤器应用于即时加载,以便只将这些内容添加到模型中。
Description::whereHas('expenses', function($query) {
$query->where('date', $this->date);
})
->with([
'expenses' => function($query) {
$query->where('date', $this->date);
}
])
->get();https://stackoverflow.com/questions/45584941
复制相似问题