コード例 #1
0
 /**
  * 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;
 }