/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Teachers::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'sex' => $this->sex, 'age' => $this->age, 'status' => $this->status, 'level' => $this->level, 'lesson' => $this->lesson, 'create_time' => $this->create_time, 'update_time' => $this->update_time]); $query->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'create_user', $this->create_user])->andFilterWhere(['like', 'update_user', $this->update_user]); return $dataProvider; }
public function actionRateTeacher() { $request = Yii::$app->request; try { $teacher = $request->post('teacher', ''); $check_teacher = Teachers::find()->where(['id' => $teacher])->count(); if ($check_teacher == 0) { return json_encode(Util::arrayError('Giáo viên không tồn tại', '')); } $stars = $request->post('stars', ''); if ($stars < 1 || $stars > 5) { return json_encode(Util::arrayError('Điểm không hợp lệ', '')); } $result = Teachers::rateTeacher($teacher, $stars); return json_encode(Util::arraySuccess('Success', $result)); } catch (Exception $ex) { } }
public static function getTeachersByDepartment($department) { $query = Teachers::find()->where(['department' => $department])->orderBy('id desc'); $countQuery = clone $query; $pages = new Pagination(['totalCount' => $countQuery->count()]); $pages->defaultPageSize = 27; $models = $query->offset($pages->offset)->limit($pages->limit)->all(); if (!Yii::$app->cache->exists('departments')) { $departments = Departments::find()->orderBy('name', 'desc')->all(); Yii::$app->cache->add('departments', $departments, 3600); } else { $departments = Yii::$app->cache->get('departments'); } return ['models' => $models, 'pages' => $pages, 'departments' => $departments]; }