public function actionSearch()
 {
     $request = Yii::$app->request;
     $query = Yii::$app->session->getFlash('query');
     if ($request->isPost) {
         $type = $request->post('type');
         $content = trim($request->post('content'));
     } else {
         $type = $request->get('type');
         $content = trim($request->get('content'));
     }
     if ($type || !$query) {
         switch ($type) {
             case 'province':
                 $table_a = ExamTemplate::tableName();
                 $table_b = Province::tableName();
                 $query = ExamTemplate::find()->leftJoin($table_b, "{$table_a}.provinceId={$table_b}.provinceId")->where(['like', "{$table_b}.name", $content]);
                 break;
             case 'majorJob':
                 $table_a = ExamTemplate::tableName();
                 $table_b = MajorJob::tableName();
                 $query = ExamTemplate::find()->leftJoin($table_b, "{$table_a}.majorJobId={$table_b}.majorJobId")->where(['like', "{$table_b}.name", $content]);
                 break;
             case 'name':
             case 'state':
                 $query = ExamTemplate::find()->where(['like', $type, $content]);
                 break;
             default:
                 $query = ExamTemplate::find();
                 break;
         }
     }
     Yii::$app->session->setFlash('query', $query);
     $pagination = new Pagination(['defaultPageSize' => Yii::$app->params['pageSize'], 'totalCount' => $query->count()]);
     $examTemplates = $query->offset($pagination->offset)->limit($pagination->limit)->all();
     return $this->render('index', ['examTemplates' => $examTemplates, 'pages' => $pagination]);
 }
Esempio n. 2
0
 public static function findByMajorJobAndProvince($majorJobId, $provinceId)
 {
     return ExamTemplate::find()->where(['majorJobId' => $majorJobId, 'provinceId' => $provinceId, 'state' => ExamTemplate::STATE_ABLE])->asArray()->all();
 }