public function actionEdit($id = null) { $model = new Warehouse(); $model->loadDefaultValues(); if ($id !== null) { $model = Warehouse::findOne($id); } if ($model->load(Yii::$app->request->post()) && $model->validate()) { if ($model->save()) { Yii::$app->session->setFlash('info', Yii::t('app', 'Object saved')); $returnUrl = Yii::$app->request->get('returnUrl', ['/shop/backend-warehouse/index']); switch (Yii::$app->request->post('action', 'save')) { case 'next': return $this->redirect(['/shop/backend-warehouse/edit', 'returnUrl' => $returnUrl]); case 'back': return $this->redirect($returnUrl); default: return $this->redirect(Url::toRoute(['/shop/backend-warehouse/edit', 'id' => $model->id, 'returnUrl' => $returnUrl])); } } } $wareHouseOpeningHours = WarehouseOpeninghours::find()->where(['warehouse_id' => $model->id])->one(); if ($wareHouseOpeningHours === null) { $wareHouseOpeningHours = new WarehouseOpeninghours(); } $wareHouseOpeningHours->loadDefaultValues(); if (Yii::$app->request->post('WarehouseOpeninghours') && !$model->isNewRecord) { $wareHouseOpeningHours->load(Yii::$app->request->post()); $wareHouseOpeningHours->warehouse_id = $model->id; if ($wareHouseOpeningHours->save()) { $this->refresh(); } } $warehousePhone = new WarehousePhone(); if (Yii::$app->request->post('WarehousePhone') && !$model->isNewRecord) { $warehousePhone->loadDefaultValues(); $warehousePhone->load(Yii::$app->request->post()); $warehousePhone->warehouse_id = $model->id; if ($warehousePhone->save()) { $this->refresh(); } } $warehousePhoneProvider = new ActiveDataProvider(['query' => $warehousePhone::find()->where(['warehouse_id' => $model->id]), 'pagination' => ['pageSize' => 20]]); $warehouseEmail = new WarehouseEmail(); if (Yii::$app->request->post('WarehouseEmail') && !$model->isNewRecord) { $warehouseEmail->loadDefaultValues(); $warehouseEmail->load(Yii::$app->request->post()); $warehouseEmail->warehouse_id = $model->id; if ($warehouseEmail->save()) { $this->refresh(); } } $warehouseEmailProvider = new ActiveDataProvider(['query' => $warehouseEmail::find()->where(['warehouse_id' => $model->id]), 'pagination' => ['pageSize' => 20]]); return $this->render('form', ['model' => $model, 'wareHouseOpeningHours' => $wareHouseOpeningHours, 'warehousePhone' => $warehousePhone, 'warehousePhoneProvider' => $warehousePhoneProvider, 'warehouseEmail' => $warehouseEmail, 'warehouseEmailProvider' => $warehouseEmailProvider]); }