/** * create a post * * @return null|string|\yii\web\Response * @throws Exception * @throws \Exception */ public function actionCreate() { try { Yii::trace('Trace :' . __METHOD__, __METHOD__); $response = null; $model = new Post(['scenario' => 'create']); $query = (new Query())->select('name, id')->from('categories')->all(); $categories = ArrayHelper::map($query, 'id', 'name'); if ($model->load($_POST) === true && $model->validate() === true) { $model->category_id = (int) $model->category_name; $model->created = Yii::$app->formatter->asDateTime('now', 'php:Y-m-d H:i:s'); $model->user_id = Yii::$app->user->id; $status = $model->save(); if ($status === true) { $sidebarCacheName = isset(Yii::$app->params['cache']['sidebar']) ? Yii::$app->params['cache']['sidebar'] : null; if ($sidebarCacheName !== null) { Yii::$app->cache->delete($sidebarCacheName); } $response = $this->redirect(['/post/view', 'slug' => $model->slug]); } } if ($response === null) { $response = $this->render('create', ['model' => $model, 'categories' => $categories]); } return $response; } catch (Exception $e) { Yii::error($e->getMessage(), __METHOD__); throw $e; } }