У меня есть несколько вопросов по сохранению связанных данных из формы
Есть модель Post, данные о посте
есть связанныая модель в которой храняться дополнительные данные поста, связь один ко многим
на форме данные из этой таблицы представленны ввиде чек боксов
Код: Выделить всё
<div class="col-3"><?= $form->field($model, 'name') ?> </div>
<div class="col-12 check-box-list-admin">
<?= $form->field($userComfort, 'prop_id', [
])->checkboxList($comfort, ['item' => function ($index, $label, $name, $checked, $value) {
if ($checked == 1) $check = 'checked';
else $check = '';
return "<span class='wrap-check-box-list'><input class='checkbox-cabinet' id='{$name}{$value}' type='checkbox' {$check} name='{$name}' value='{$value}'><label class='check-box-list-label' for='{$name}{$value}'>{$label}</label></span>";
}])->label('Удобства:') ?>
</div>
При сохранении приходится либо переопределять метод save либо делать вспомогательные методы типа такого
Код: Выделить всё
public static function save($class, $property, $userId)
{
if (is_array($property)){
foreach ($property as $item){
$object = new $class;
$object->prop_id = $item;
$object->user_id = $userId;
$object->save();
}
}
}
что бы скормить данные в $form->field сделал вот так :
Код: Выделить всё
$userComfort->prop_id = ArrayHelper::getColumn(UserComfort::find()->where(['user_id' => $model->id])->all(), 'prop_id');
Если кто знает более лучшее решение этой задачи прошу поделится ним со мной