コード例 #1
0
 public function actionForm($id = NULL)
 {
     $model = $id && Boxtypes::findOne($id) ? Boxtypes::findOne($id) : new Boxtypes();
     if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) {
         Yii::$app->response->format = Response::FORMAT_JSON;
         return ActiveForm::validate($model);
     }
     if ($model->load(Yii::$app->request->post())) {
         /* Uploads */
         $model->pictureFile = UploadedFile::getInstance($model, 'pictureFile');
         $model->buildingplanFile = UploadedFile::getInstance($model, 'buildingplanFile');
         if ($model->validate()) {
             /* Picture */
             if ($model->pictureFile) {
                 $model->uploadPicture();
             }
             if ($model->deleteImage && !$model->pictureFile) {
                 $model->picture = NULL;
             }
             /* Buildingplan */
             if ($model->buildingplanFile) {
                 $model->uploadBuildingplan();
             }
             if ($model->deleteBuildingplan && !$model->buildingplanFile) {
                 $model->buildingplan = NULL;
             }
             /* Save the model */
             $model->save(false);
             /* Unlink all previous entries */
             $model->unlinkAll('boxtypeEntrances', true);
             /* Save all the selected visit methods */
             if (isset($_POST['Boxtypes']['entrances'])) {
                 foreach (Yii::$app->request->post('Boxtypes')['entrances'] as $entrance) {
                     $entrancesModel = new BoxtypeEntrances();
                     $entrancesModel->entrance_index = $entrance;
                     if ($entrance == Boxtypes::BOX_ENTRANCES_OTHER) {
                         $entrancesModel->other = Yii::$app->request->post('Boxtypes')['entrance_other'];
                     }
                     $entrancesModel->link('boxtypes', $model);
                     $entrancesModel->save();
                 }
             }
             return $this->redirect(Url::toRoute('boxtypes/detail/' . $model->id));
         } else {
             /* Save checked entrances */
             if (isset($_POST['Boxtypes']['entrances'])) {
                 foreach (Yii::$app->request->post('Boxtypes')['entrances'] as $entrance) {
                     $model->checked_entrances[$entrance] = $entrance != Boxtypes::BOX_ENTRANCES_OTHER ? true : Yii::$app->request->post('Boxtypes')['entrance_other'];
                 }
             }
         }
     }
     return $this->render('form', ['model' => $model, 'users' => Users::find()->select(['id', new \yii\db\Expression("CONCAT(username, ' (', fullname, ')') as username")])->all()]);
 }
コード例 #2
0
ファイル: Boxtypes.php プロジェクト: ThijsBosch/batboxes
 public function getBoxtypeEntrances()
 {
     return $this->hasMany(BoxtypeEntrances::className(), ['boxtype_id' => 'id']);
 }