public function save() { if (!$this->validate()) { return false; } $customField = new CustomFields(); $customField->attributes = $this->attributes; $customField->save(); return true; }
public static function getCustomFieldsArray($tour_id) { $query = new Query(); $query->from(CustomFields::tableName())->where([CustomFields::FIELD_TOUR_ID => $tour_id]); $result = $query->all(); return $result; }
public function actionBookPlace($tour_date_id) { $model = new BookingsForm(); $tour_date = ToursDates::findOne($tour_date_id); $query = new Query(); $custom_fields = CustomFields::getCustomFieldsArray($tour_date->tour_id); if ($model->load(Yii::$app->request->post()) && $model->save()) { Yii::$app->session->setFlash('success', 'Congratulations! Places successful booked'); return $this->redirect(['tour-details', Tours::FIELD_TOUR_ID => $tour_date->tour_id]); } return $this->render('book_place', ['model' => $model, 'tour_date' => $tour_date, 'custom_fields' => $custom_fields]); }
use app\models\Bookings; use app\models\CustomFields; ?> <div class="col-sm-12"> <div class="panel panel-default"> <div class="panel-heading"> <?php echo Html::tag('h4', $model->date); ?> </div> <div class="panel-body"> <h5 >Booked places</h5> <?php echo GridView::widget(['dataProvider' => new ActiveDataProvider(['query' => Bookings::find()->where([Bookings::FIELD_TOUR_DATE_ID => $model->tour_date_id])]), 'columns' => [Bookings::FIELD_NAME, Bookings::FIELD_ADULTS, Bookings::FIELD_CHILDREN, Bookings::FIELD_BABIES, ['class' => DataColumn::className(), 'format' => 'html', 'attribute' => Bookings::FIELD_CUSTOM_FIELDS, 'value' => function ($model) { /* @var $model Bookings */ $result = 'Not set'; if (isset($model->custom_fields)) { $result = null; $custom_fields = unserialize($model->custom_fields); foreach ($custom_fields as $key => $value) { $custom_field = CustomFields::findOne($key); $result .= '<b>' . $custom_field->label . ': </b>' . $value . '<br>'; } } return $result; }]]]); ?> </div> </div> </div>
public function actionDeleteCustomField($custom_field_id) { $custom_field = CustomFields::findOne($custom_field_id); if ($bookings = Bookings::findAll([Bookings::FIELD_TOUR_DATE_ID => $custom_field->tour_id])) { Yii::$app->session->setFlash('danger', 'This custom field can not delete because it contains in reserved places records'); return $this->redirect(['edit-tour', Tours::FIELD_TOUR_ID => $custom_field->tour_id]); } $custom_field->delete(); Yii::$app->session->setFlash('success', 'Tours date successful deleted'); return $this->redirect(['edit-tour', Tours::FIELD_TOUR_ID => $custom_field->tour_id]); }