[ 'class' => VerbFilter::className(), 'actions' => [ 'delete' => ['post'], 'confirm' => ['post'], 'block' => ['post'], ], ], 'access' => [ 'class' => AccessControl::className(), 'ruleConfig' => [ 'class' => AccessRuleFilter::className(), ], 'rules' => [ [ 'allow' => true, 'roles' => ['admin'], ], ], ], ]; } public function actionCreate() { /** @var User $user */ $user = $this->make(User::class, ['scenario' => 'create']); /** @var UserEvent $event */ $event = $this->make(UserEvent::class, [$user]); $this->make(AjaxRequestModelValidator::class, [$user])->validate(); $this->trigger(UserEvent::EVENT_BEFORE_CREATE, $event); if($user->load(Yii::$app->request->post())) { /** @var UserCreateService $userCreateService */ $userCreateService = $this->make(UserCreateService::class, [$user]); $userCreateService->run(); $this->trigger(UserEvent::EVENT_AFTER_CREATE, $event); return $this->redirect(['update', 'id' => $user->id]); } return $this->render('create', [ 'user' => $user, ]); } }