/** * Creates a new Source model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $basicModel = ''; $basicId = 0; $params = Yii::$app->request->post(); if ($params && $params['Source']) { foreach ($params['Source'] as $key => $value) { $params['Source']['update_time'] = time(); $params['Source']['create_time'] = time(); } $basicId = $params['Source']['basic_id']; $basicModel = Basic::findOne($basicId); if (!$basicModel) { throw new NotFoundHttpException('The basic info does not exist.'); } $urlEncode = ""; if (!empty($params['Source']['download_url'])) { $urlEncode = md5(trim($params['Source']['download_url'])); } elseif (!empty($params['Source']['play_url'])) { $urlEncode = md5(trim($params['Source']['play_url'])); } #check source temp url_encode $sourceTempData = SourceTemp::findOne(['url_encode' => $urlEncode]); if ($sourceTempData) { throw new ServerErrorHttpException('The source temp info does exist.'); } } $model = new Source(); if ($model->load($params) && $model->save()) { #add source_temp $sourceTempModel = new sourceTemp(); $sourceTempModel->basic_id = $basicId; $sourceTempModel->title = $basicModel->title; $sourceTempModel->year = $basicModel->year; $sourceTempModel->type = $params['Source']['type']; $sourceTempModel->name = $params['Source']['name']; $sourceTempModel->download_url = $params['Source']['download_url']; $sourceTempModel->play_url = $params['Source']['play_url']; $sourceTempModel->ext = $params['Source']['ext']; $sourceTempModel->url_encode = $urlEncode; $sourceTempModel->sort = $params['Source']['sort']; $sourceTempModel->status = $params['Source']['status']; $sourceTempModel->update_time = time(); $sourceTempModel->create_time = time(); $sourceTempModel->save(); #update basic $basicModel->source_num = $basicModel->source_num + 1; $basicModel->update_time = time(); $ret = $basicModel->save(); return $this->redirect(['view', 'id' => $model->id]); } else { return $this->render('create', ['model' => $model]); } }