/** * Use given opening time and closing time to perform the query and return the model with relations */ public static function findWithRelationsUseTimes($id, $opentime, $closetime) { $query = DB::connection()->prepare(' SELECT ho.*, h.*, u.*, r.*, i.*, ir.* FROM hospitals ho LEFT OUTER JOIN hours AS h ON h.hospital_id = ho.id AND h.at >= :opentime AND h.at <= :closetime LEFT OUTER JOIN hour_users AS hu ON hu.hour_id = h.id LEFT OUTER JOIN users AS u ON hu.user_id = u.id LEFT OUTER JOIN importances AS i ON h.importance_id = i.id LEFT OUTER JOIN importance_roles AS ir ON i.id = ir.importance_id LEFT OUTER JOIN roles AS r ON r.id = u.role_id WHERE ho.id = 1 '); $query->execute(array('id' => $id, 'opentime' => $opentime, 'closetime' => $closetime)); $results = $query->fetch(); if ($results) { $hospital = new Hospital(array_slice($results[0], 4)); $hospital->addRelations($results); return $hospital; } return null; }