[ 'class' => AccessControl::class, 'rules' => [ [ 'actions' => ['error'], 'allow' => true, ], [ 'actions' => ['index', 'search'], 'allow' => true, 'roles' => ['Dashboard'], ], [ // all the action are accessible to admin 'allow' => true, 'roles' => ['admin'], ], ], ], 'verbs' => [ 'class' => VerbFilter::class, 'actions' => [ 'logout' => ['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()); } } } public function beforeAction($action) { if ($action->id === 'error') { $this->layout = 'error'; } return parent::beforeAction($action); } }