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]); }
public static function findByMajorJobAndProvince($majorJobId, $provinceId) { return ExamTemplate::find()->where(['majorJobId' => $majorJobId, 'provinceId' => $provinceId, 'state' => ExamTemplate::STATE_ABLE])->asArray()->all(); }