Задать вопрос
@inajaf

Как правильно связать и вывести CheckboxList в Yii2?

Ребят имеются три таблицы в которых задействована связка по значением, а именно:
Модель Project, ProjectServices, Services

Нужно в методе actionUpdate реализовать данную связку в форме в виде checkboxlist
Отобразить чекнутые сервисы во вьюхе проекта а те которые не привязаны к проекту сервисы должны быть не чекнутыми, именно в actionUpdate. Сама привязка в моделях уже реализована, только вот не могу получить саму логику привязок в контроллере actionUpdate и в update.php вьюшке.
Как на скриншоте.

6295c654302dd278146548.png
  • Вопрос задан
  • 250 просмотров
Подписаться 1 Средний 11 комментариев
Решения вопроса 1
@inajaf Автор вопроса
Большое спасибо Евгений за помощь.

В итоге получил список чекнутых чекбоксов с помощью передачи массива в атрибут который имеется в модели Poejcts без привязки к базе и вызова его в checkListBox:

6296feba53777567001786.png

6296fed4da98f944457669.png
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
создание форм для композитных моделей путем наследования этой модели - это доволно геморное решение. Лучше создать форму наследующую Model и являющуюся оберткой моделей входящих в композицию. По поводу полного списка чекбоксов:
$services = array_merge(ServiceModel::find(...)->indexBy('id')->all(), $сompositeModel->services);

если используешь ActiveForm:
<?= $form->field($model, 'services')->checkboxList(['items' => ServiceModel::find(...)->indexBy('id')->all()]) ?>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы