/** * @param string|int $group_name * @param string $cond * @return LessonModel[]|array */ public static function getAllByGroupNameOrGroupId($group_name, $cond = "") { $group_name = mb_strtolower($group_name, "UTF-8"); $group_name = str_replace(array_values(GroupModel::$replace), array_keys(GroupModel::$replace), $group_name); /** @var PDO $db */ $db = Registry::get('db'); $group_id = $db->query("\r\n SELECT group_id FROM " . GroupModel::TABLE . "\r\n WHERE (group_full_name = " . $db->quote($group_name) . " OR group_id = " . $db->quote($group_name) . ")\r\n ")->fetchColumn(); $count = $db->query("\r\n SELECT COUNT(*) FROM " . LessonModel::TABLE . "\r\n WHERE (group_id = '{$group_id}' OR group_id = " . $db->quote($group_name) . ") {$cond}\r\n ")->fetchColumn(); $result = array(); if ($count > 0) { $query = $db->query("\r\n SELECT * FROM " . LessonModel::TABLE . "\r\n WHERE (group_id = '{$group_id}' OR group_id = " . $db->quote($group_name) . ") {$cond} ORDER BY lesson_week,day_number,lesson_number ASC\r\n "); while ($data = $query->fetch(PDO::FETCH_ASSOC)) { $lessonModel = new LessonModel(); $lessonModel->unpack($data); $lessonModel->teachers = TeacherModel::getAllByLessonId($lessonModel->lesson_id); //enable duplicate filter $lessonModel->teachers = TeacherModel::teachersDuplicateFilter($lessonModel->teachers); //load rooms $lessonModel->rooms = RoomModel::getAllByLessonId($lessonModel->lesson_id); $result[] = $lessonModel->toArray(); } } else { throw new ApiException("Lessons not found"); } return $result; }