我需要获得所有appeals
,appeal_stage.expiration_date
小于NOW()
。
现在我有以下解决方案:
public function scopeExpired($query) {
$query->join('appeal_stage', 'appeals.id', 'appeal_stage.appeal_id')
->where('appeal_stage.expiration_date', '<=', new Expression('NOW()'));
}
所以,我想问一下 - 是否有更方便的方式来执行此请求?
我的建议是以某种方式使用Illuminate\Database\Eloquent\Relations\Pivot
,我不明白,如何在这里使用Pivot。
UPD 1
模型有下一个关系:
public function stages()
{
return $this->belongsToMany(Stage::class)->withPivot('prolongated_count', 'expiration_date')->withTimestamps();
}
public function appeals() {
return $this->belongsToMany(Appeal::class);
}
答案 0 :(得分:2)
你应该可以这样做:
[].slice.call(document.querySelectorAll('.dropdown .nav-link')).forEach(function(el){
el.addEventListener('click', onClick, false);
});
答案 1 :(得分:2)
您应该在appeal
模型
public function stages()
{
return $this->belongsToMany(Stage::class,'appeal_stage','appeal_id','stage_id')->wherePivot('expiration_date','<',Carbon::now())->withTimestamps();
}
在属于多个关系中,第二个参数是您的Pivot
表名