public static function saveReviewProperties(AfterSaveEvent $event) { $submission = null; $reviewId = Yii::$app->request->get('id'); $post = Yii::$app->request->post(); if (null !== ($review = Review::findOne(['id' => $reviewId]))) { $submission = Submission::findOne(['id' => $review->submission_id]); } else { $m = preg_grep('%Properties_Submission_([\\d]+)$%', array_keys($post)); if (false === empty($m)) { $submissionId = array_pop(explode('_', array_shift($m))); $submission = Submission::findOne(['id' => $submissionId]); } } if (null !== $submission) { if (isset($post['Submission'])) { $submission->attributes = $post['Submission']; $submission->save(); } $submission->saveProperties($post); } }
public function actionCreate($parent_id = 0) { $parent_id = intval($parent_id); $model = new Review(); $model->loadDefaultValues(); if (0 === $parent_id) { $model->parent_id = $parent_id; $model->submission_id = 0; $model->object_model_id = 0; $model->object_id = 0; } elseif (null !== ($parent = Review::findOne(['id' => $parent_id]))) { /** @var Review $parent */ $model->parent_id = $parent_id; $model->object_id = $parent->object_id; $model->object_model_id = $parent->object_model_id; $model->root_id = $parent->root_id; $model->submission_id = $parent->submission_id; } if (true === Yii::$app->request->isPost) { if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(Url::toRoute(['view', 'id' => $model->id])); } else { // @todo add alert and may be something else here } } return $this->render('edit', ['review' => $model]); }
<?php /** * @var \app\models\Form $form * @var \app\models\Submission $submission */ /** @var \app\modules\review\models\Review $review */ $review = \app\modules\review\models\Review::findOne(['submission_id' => $submission->id]); // @todo Add rating to email ?> <h1><?php echo $form->name . ' #' . $submission->id; ?> </h1> <table> <tr> <td><?php echo Yii::t('app', 'Date received'); ?> </td> <td><?php echo $submission->date_received; ?> </td> </tr> <tr> <td><?php echo Yii::t('app', 'IP'); ?> </td> <td><?php
/** * Load review model by id * @param $id * @return Review * @throws NotFoundHttpException */ protected function loadModel($id) { $model = Review::findOne($id); if (is_null($model)) { throw new NotFoundHttpException(); } return $model; }