基于父列值约束Laravel /口才吗?

问题描述 投票:0回答:1

我在Laravel中有两个模型,我需要它们之间有特定的关系。

父模型TrackWire具有这种关系:

        public function wire()
        {
           return $this->hasMany('App\Wire', 'machineID', 'machineID');
        }

此关系有效,但是我需要限制它。Track中的每一行都有两个值:date_fromdate_to。每个Wire都有一个值date

我需要将关系限制为在父级Wiredatedate_from之间具有date_to的那些Track

我确定必须有一种方法,但是我尝试了以下操作(如下),但没有任何效果。

感谢您的所有帮助!

方法1

        public function wire()
        {
           return $this->hasMany('App\Wire', 'machineID', 'machineID')
                  ->whereBetween("wire.date", ["track.dateFrom", "track.dateTo"];
        }

方法2

        ->with(["wire" => function($query) {
            $query->whereBetween("wire.date", ["track.dateFrom", "track.dateTo"]);
        }]);
php laravel
1个回答
0
投票

使用WhereHas可以过滤轨道参考线,因此仅显示轨道在两个日期之间具有线:

   Track::WhereHas("wire", function($query) {
            $query->whereBetween("wire.date", ["track.dateFrom", "track.dateTo"])->get();
        });
© www.soinside.com 2019 - 2024. All rights reserved.