service = $service; } /** * @inheritdoc */ public function behaviors() { return [ 'access' => [ 'class' => AccessControl::class, 'rules' => [ [ 'actions' => ['error'], 'allow' => true, ], [ 'actions' => ['index', 'search', 'language'], 'allow' => true, 'roles' => ['Dashboard'], ], [ // all the action are accessible to admin 'allow' => true, 'roles' => ['admin'], ], ], ], 'verbs' => [ 'class' => VerbFilter::class, 'actions' => [ 'logout' => ['post'], 'language' => ['post'], ], ], ]; } /** * @inheritdoc */ public function actions() { return [ 'error' => [ 'class' => 'yii\web\ErrorAction', ], ]; } /** * Displays homepage. * * @return string */ public function actionIndex() { return $this->render('index'); } public function actionSearch() { $form = new SearchForm(); if ($form->load(Yii::$app->request->post()) && $form->validate()) { try { $query = Search::find() ->andWhere(['LIKE', 'title', $form->query]) ->orWhere(['LIKE', 'content', $form->query]); $provider = new ActiveDataProvider([ 'query' => $query, 'pagination' => [ 'pageSize' => 10, ], 'sort' => [], ]); return $this->render('search', [ 'provider' => $provider, 'form' => $form ]); //$page = $this->service->create($form); //return $this->redirect(['view', 'id' => $page->id]); } catch (\DomainException $e) { //Yii::$app->errorHandler->logException($e); //Yii::$app->session->setFlash('error', $e->getMessage()); } } return ''; } public function actionLanguage($language) { if ($language && in_array($language, array_keys(Yii::$app->params['backendTranslatedLanguages']))) { $this->service->setBackendLanguage($language); } return $this->redirect(Yii::$app->request->referrer); } public function beforeAction($action) { if ($action->id === 'error') { $this->layout = 'error'; } return parent::beforeAction($action); } }