/**
  * 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]);
 }
Esempio n. 2
0
 /**
  * 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');
     }
 }
Esempio n. 3
0
 /**
  * @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;
 }
Esempio n. 4
0
 /**
  * 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;
 }
Esempio n. 5
0
 /**
  * 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;
 }
Esempio n. 6
0
 /**
  * @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];
 }
Esempio n. 7
0
 /**
  * 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;
 }
Esempio n. 8
0
 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();
 }
Esempio n. 9
0
 /**
  * Гененирует тестовый данные в БД. Единственная точка входа
  */
 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();
     }
 }
Esempio n. 10
0
 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]);
 }
Esempio n. 11
0
/* @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);
 }
Esempio n. 13
0
 /**
  * Имена любых двух учителей, у которых максимальное количество общих учеников, и список этих общих учеников.
  * @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]);
 }