我正在尝试过滤搜索结果。我已经能够从多个表中检索值。但我不知道如何通过一对多的关系来做到这一点。 我有两张桌子,旅行和离开。 一次旅行有很多次离开。他们的结构是: 旅行: +++++++++
起程: ++++++++++++
他们的关系被定义为: 行程:
public function departures()
{
return $this->hasMany('App\Departure',"tripsid","id");
}
出发:
public function trips()
{
return $this->belongsTo('App\Trip','tripsid','id');
}
我想要检索那些开始日期=(某年或月(来自start_date))的旅行。
我该怎么做?任何人都可以帮助我吗?
答案 0 :(得分:0)
使用whereHas()
。几个例子:
Trip::whereHas('departures', function($q) use($date1, $date2) {
$q->whereBetween('start_sate', [$date1, $date2]);
})
->get();
或者:
Trip::whereHas('departures', function($q) use($date) {
$q->where('start_sate', '>', $date);
})
->get();