/** * Lists all Teacher models. * @return mixed */ public function actionIndex() { $title = 'Учителя'; $dataProvider = new ActiveDataProvider(['query' => Teacher::find()->select('id, name, gender, phone, s.cnt as stud_cnt')->join('LEFT JOIN', '(' . Teacher::studentsCountSql . ') s', 's.tid = id')]); $dataProvider->setSort(['defaultOrder' => ['name' => SORT_ASC], 'attributes' => ['name', 'gender', 'phone', 'students_count' => ['asc' => ['stud_cnt' => SORT_ASC], 'desc' => ['stud_cnt' => SORT_DESC]]]]); return $this->render('index', ['dataProvider' => $dataProvider, 'title' => $title]); }
/** * Display the specified resource. * * @param int $id * @return Response */ public function show($id) { // $teacher = Teacher::find($id); if (!$teacher || !$teacher->status) { return view('errors.404'); } }
/** * @param Post $post * @return \Illuminate\View\View */ public function show(Post $post) { $teacher = Teacher::find($post->author_id); $category_id = CategoryPost::wherePost_id($post->id)->first()->category_id; $category = Category::find($category_id)->name; $post['category_id'] = $category_id; $post['category'] = $category; $post['author'] = $teacher->name; $post['fb'] = $teacher->fb; if (!Auth::user()) { $post->increment('views'); } return $post; }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Teacher::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(['tchr_id' => $this->tchr_id, 'tchr_active' => $this->tchr_active]); $query->andFilterWhere(['like', 'tchr_fname', $this->tchr_fname])->andFilterWhere(['like', 'tchr_lname', $this->tchr_lname])->andFilterWhere(['like', 'tchr_address', $this->tchr_address])->andFilterWhere(['like', 'tchr_postcode', $this->tchr_postcode])->andFilterWhere(['like', 'tchr_mobile', $this->tchr_mobile])->andFilterWhere(['like', 'tchr_phone', $this->tchr_phone])->andFilterWhere(['like', 'tchr_email', $this->tchr_email])->andFilterWhere(['like', 'tchr_disp_id', $this->tchr_disp_id]); return $dataProvider; }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Teacher::find(); $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 100], 'sort' => ['defaultOrder' => ['name' => SORT_ASC]]]); $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]); $query->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'gender', $this->gender])->andFilterWhere(['like', 'phone', $this->phone]); return $dataProvider; }
/** * @return SqlDataProvider[] */ public function findWhoHasMaxCommonStudents() { $selectedTeachersData = new SqlDataProvider(['sql' => "SELECT st1.teacher_id as t_id1, st2.teacher_id as t_id2, count(st1.student_id) as count FROM student_teacher as st1\nINNER JOIN student_teacher as st2\non st1.student_id=st2.student_id AND st1.teacher_id!=st2.teacher_id\nGROUP BY st1.teacher_id, st2.teacher_id\nORDER BY count DESC\nLIMIT 1;"]); $selectedTeachersData = $selectedTeachersData->getModels(); if (!empty($selectedTeachersData[0]) && isset($selectedTeachersData[0]['t_id1']) && isset($selectedTeachersData[0]['t_id2'])) { $tId1 = $selectedTeachersData[0]['t_id1']; $tId2 = $selectedTeachersData[0]['t_id2']; } else { return array(); } $commonStudents = new SqlDataProvider(['sql' => "SELECT s.* FROM student_teacher as st1\n LEFT JOIN student_teacher as st2 on st1.student_id=st2.student_id\nLEFT JOIN student as s on s.id=st1.student_id\nWHERE st1.teacher_id=:teacher1 AND st2.teacher_id=:teacher2;", 'params' => [':teacher1' => $tId1, ':teacher2' => $tId2]]); $teachers = Teacher::find()->andWhere(['id' => $tId1])->orWhere(['id' => $tId2]); return [$teachers, $commonStudents]; }
/** * Display the specified resource. * * @param int $id * @return Response */ public function show($id) { $posts = Post::whereArchive_id($id)->paginate(Input::get('itemPerPage')); for ($i = 0; $i < count($posts); $i++) { $post = $posts[$i]; $post = array_except($post, array("body")); $teacher = Teacher::find($post->author_id); $category_id = CategoryPost::wherePost_id($post->id)->first()->category_id; $category = Category::find($category_id)->name; $post['category'] = $category; $post['author'] = $teacher->name; $post['fb'] = $teacher->fb; $posts[$i] = $post; } return $posts; }
function postCapnhat($id) { // Get data $input['first_name'] = Input::get('first_name'); $input['last_name'] = Input::get('last_name'); $input['email'] = Input::get('email'); $input['address'] = Input::get('address'); $input['phone'] = Input::get('phone'); // Validate $rules = ['id' => 'required|numeric|exists:teachers,id', 'first_name' => 'required|string|min:2|max:250', 'last_name' => 'required|string|min:2|max:250', 'email' => 'required|string|min:2|max:250', 'address' => 'required|string|min:2|max:250', 'phone' => 'required|numeric']; $validator = Validator::make($input, $rules); if ($validator->fails()) { $errors_validate = $validator->messages()->all(); return back()->with('errors_validate', $errors_validate)->withInput(); } // If validate Ok $the_shift = Teacher::find($input['id'])->update($input); add_message('Cập nhật thành công'); return back(); }
/** * Гененирует тестовый данные в БД. Единственная точка входа */ public function actionIndex() { try { echo "Начинаю генерировать " . $this->getConfig('students_num') . " студентов" . "\n"; $this->minStudentId = Student::find()->max('id') + 1; $this->generateStudents(); $this->maxStudentId = Student::find()->max('id'); echo 'Студенты успешно сгенерированы' . "\n"; echo "Начинаю генерировать " . $this->getConfig('teachers_num') . " учителей" . "\n"; $this->minTeacherId = Teacher::find()->max('id') + 1; $this->generateTeachers(); $this->maxTeacherId = Teacher::find()->max('id'); echo 'Учителя успешно сгенерированы' . "\n"; echo "Начинаю генерировать привязки студентов к учителям." . "\n"; $this->generateLinks(); echo 'Привязки успешно сгенерированы' . "\n"; } catch (Exception $e) { echo 'Ошибка. Не удалось сгенерировать тестовые данные. Причина: ' . $e->getMessage(); } }
public function actionView($id = null) { if (!$id) { return $this->render('/site/error', ['name' => 'Bad request', 'message' => 'id is not defined']); } $message['class'] = ''; $message['text'] = ''; $model = new TeacherStudent(); $dataProvider = Teacher::find()->where(['id' => (int) $id]); if ($model->load(Yii::$app->request->post()) && $model->validate()) { if (TeacherStudent::find()->where(['teacher_id' => $model->teacher_id, 'student_id' => $model->student_id])->count() == 0) { $result = $model->save(); } else { $message['class'] = 'danger'; $message['text'] = 'Ошибка. Пользователь с id ' . $model->student_id . ' уже назначен учителю с id ' . $model->teacher_id . '.'; } if (isset($result) && $result === true) { $message['class'] = 'success'; $message['text'] = 'Ваш запрос успешно выполнен. Пользователь с id ' . $model->student_id . ' назначен учителю с id ' . $model->teacher_id . '.'; } } return $this->render('view', ['dataProvider' => $dataProvider, 'model' => $model, 'message' => $message]); }
/* @var $model app\models\UserTeacher */ /* @var $form yii\widgets\ActiveForm */ ?> <div class="user-teacher-form"> <?php $form = ActiveForm::begin(); ?> <?php if ($model->isNewRecord) { ?> <?php echo $form->field($model, 'usr_type_id')->dropDownList(ArrayHelper::map(Teacher::find()->asArray()->all(), 'tchr_id', 'tchr_fname'), ['prompt' => '-Choose a Teacher-']); ?> <?php } ?> <?php echo $form->field($model, 'usr_id')->textInput(['readonly' => !$model->isNewRecord]); ?> <?php echo $form->field($model, 'usr_name')->textInput(['maxlength' => true]); ?> <?php echo $form->field($model, 'usr_pass')->passwordInput(['readonly' => !$model->isNewRecord]);
/** * Find Teacher by given id * * @param int $id * * @return \Illuminate\Support\Collection|null|static|Teacher */ public function findTeacherById($id) { return Teacher::find($id); }
/** * Имена любых двух учителей, у которых максимальное количество общих учеников, и список этих общих учеников. * @return mixed */ public function actionTeachersWithMaxCommonStudents() { $title = 'Имена любых двух учителей, у которых максимальное количество общих учеников, и список этих общих учеников'; $twoTeachersMaxStudents = Teacher::getTwoHasMaxCommonStudents(); $teachers = Teacher::find()->where(['id' => $twoTeachersMaxStudents])->asArray()->all(); $teachersNames = ArrayHelper::getColumn($teachers, 'name'); $dataProvider = new ActiveDataProvider(['query' => Student::commonFromTwoTeachers($twoTeachersMaxStudents)]); $dataProvider->setSort(['defaultOrder' => ['name' => SORT_ASC]]); return $this->render('index', ['dataProvider' => $dataProvider, 'title' => $title, 'teachersNames' => $teachersNames]); }