public function actionUpdateevent() { $request = \yii::$app->request; if (yii::$app->CalendarComponent->eventEntryRecord($request->post('pk') !== null)) { $post = $request->post('pk'); } // check to see if we are doing an update via form and not resize or drag if ($request->post('name')) { $post[$request->post('name')] = $request->post('value'); } $eventEntryRecord = yii::$app->CalendarComponent->eventEntryRecord($post['ee_id']); $eventEntryModel = EventEntry::findOne($post['ee_id']); $eventModel = Event::findOne($eventEntryModel->event->id); if (!yii::$app->CalendarComponent->canUpdateEvent(array_merge($eventEntryRecord, $post))) { throw new \yii\web\HttpException(403, sprintf('Event update not authorized for use')); } $bookingModel = new Booking(); $bookingModel->attributes = array_merge($eventEntryRecord, $eventModel->attributes, $post); if ($bookingModel->validate()) { $eventEntryModel->load(['EventEntry' => $bookingModel->attributes]); $eventModel->load(['Event' => $bookingModel->attributes]); if ($eventEntryModel->validate() && $eventModel->validate()) { $eventEntryModel->save(); $eventModel->save(); yii::$app->AjaxResponse->error = false; yii::$app->AjaxResponse->message = $bookingModel->jsObject; } else { yii::$app->AjaxResponse->message = array_values($eventEntryModel->getErrors() + $eventModel->getErrors()); } } else { yii::$app->AjaxResponse->message = array_values($bookingModel->getErrors()); } yii::$app->AjaxResponse->sendContent(); }
/** * Finds the Event model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return Event the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = Event::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }