public function scopeOpen($query) { $start = Carbon::parse($this->phase_start); $startMinPhase1 = Carbon::now()->subHours(config('rap-battle.phase1time', 24)); $startMinPhase2 = Carbon::now()->subHours(config('rap-battle.phase2time', 24)); $query1 = $query; $query2 = clone $query; $ids1 = $query1->where('phase', 1)->where('phase_start', '>=', $startMinPhase1->toDateTimeString())->lists('id')->toArray(); $ids2 = $query2->where('phase', 2)->where('phase_start', '>=', $startMinPhase2->toDateTimeString())->lists('id')->toArray(); return OpenBattle::whereIn('id', array_merge($ids1, $ids2)); }
/** * Get all open battles of this user */ public function openBattles() { $ids_rapper1 = $this->openBattlesRapper1()->lists('id')->toArray(); $ids_rapper2 = $this->openBattlesRapper2()->lists('id')->toArray(); return OpenBattle::whereIn('id', array_merge($ids_rapper1, $ids_rapper2)); }