Beispiel #1
0
 /**
  * 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;
     }
 }