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]); }