从一对多关系中检索。 laravel

时间:2018-02-12 10:00:20

标签: php laravel eloquent

我正在尝试过滤搜索结果。我已经能够从多个表中检索值。但我不知道如何通过一对多的关系来做到这一点。 我有两张桌子,旅行和离开。 一次旅行有很多次离开。他们的结构是: 旅行: +++++++++

  1. ID
  2. 名称
  3. 其他领域..
  4. 起程: ++++++++++++

    1. id
    2. start_date
    3. tripsid
    4. 他们的关系被定义为: 行程:

      public function departures()
          {
              return $this->hasMany('App\Departure',"tripsid","id");
          }
      

      出发:

      public function trips()
          {
              return $this->belongsTo('App\Trip','tripsid','id');
          }
      

      我想要检索那些开始日期=(某年或月(来自start_date))的旅行。

      我该怎么做?任何人都可以帮助我吗?

1 个答案:

答案 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();