Php Laravel whereHas返回意外结果
我的问题是:Php Laravel whereHas返回意外结果,php,laravel,Php,Laravel,我的问题是: Description::whereHas('expenses', function($query) { $query->where('date', $this->date); })->with('expenses')->get(); 上面的查询返回给定日期的所有描述,但返回该描述的所有费用,而不是给定日期的费用。我无法理解这是为什么,我想首先理解这一点。这是因为带有('expenses')的我只是急于加载每个描述的所有费用?我从哪
Description::whereHas('expenses', function($query) {
$query->where('date', $this->date);
})->with('expenses')->get();
上面的查询返回给定日期的所有描述,但返回该描述的所有费用,而不是给定日期的费用。我无法理解这是为什么,我想首先理解这一点。这是因为带有('expenses')的
我只是急于加载每个描述的所有费用?我从哪里返回了在给定日期至少有一笔费用的所有描述
如果以上都是真的,我如何返回给定日期的所有描述,包括给定日期的费用
描述模型:
public function expenses()
{
return $this->hasMany(Expense::class);
}
费用模型:
public function description()
{
return $this->belongsTo(Description::class);
}
您仅筛选应加载的
说明
对象。您应该对即时加载应用相同的过滤器,以便只将这些过滤器添加到模型中
Description::whereHas('expenses', function($query) {
$query->where('date', $this->date);
})
->with([
'expenses' => function($query) {
$query->where('date', $this->date);
}
])
->get();
您仅筛选应加载的
说明
对象。您应该对即时加载应用相同的过滤器,以便只将这些过滤器添加到模型中
Description::whereHas('expenses', function($query) {
$query->where('date', $this->date);
})
->with([
'expenses' => function($query) {
$query->where('date', $this->date);
}
])
->get();
可能的重复可能的重复