Я хочу показать отмеченные значения в моем списке checkbox в Yii 2.0. Ниже приведен мой код:
Основной массив:
<?php $featureArr = array( 'Change Requester' => 'Change Requester', 'Clone Request' => 'Clone Request', 'Suspend Request' => 'Suspend Request', 'In-Process Requests Open in Edit Mode' => 'In-Process Requests Open in Edit Mode', 'Allow On-the-Fly Notifications' => 'Allow On-the-Fly Notifications', 'Additional Comments Field' => 'Additional Comments Field', 'Do Not Validate Draft Requests' => 'Do Not Validate Draft Requests', '(Web-Only) Allow File Attachments' => '(Web-Only) Allow File Attachments', );
Получение данных из таблицы для отображения отмеченных элементов:
$formFeatureModel = FormFeatureForm::find()->where("form_id=" . $model->id)->all(); $checkedFeatureArr = array(); foreach ($formFeatureModel as $data) { $checkedFeatureArr[$data->feature] = $data->feature; } ?>
Поле флажка
<?= $form->field(new FormFeatureForm, 'feature')->checkboxList($featureArr, ['class' => 'featureCls']) ?>
Я получаю $checkedFeatureArr
элемент в $checkedFeatureArr
из базы данных. Теперь я просто хочу показать отмеченные элементы. Итак, где мне передать массив $checkedFeatureArr
? Застрял в этом.
Любая помощь будет оценена по достоинству.
При использовании его с моделью вместо этого вы должны заполнить feature
модели объекта выбранными значениями.
$model->feature = $checkedFeatureArr;
Затем он будет проверяться автоматически.
Дополнительные советы:
Лучше избегать конкатенации в SQL, replace ->where("form_id=" . $model->id)
с ->where(['form_id' => $model->id])
.
Лучше создать ActiveForm
перед рендерингом ActiveField
.