Форма из таблицы. Как правильно оформить вид

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
selfauthor
Сообщения: 26
Зарегистрирован: 2023.10.09, 19:35
Откуда: Москва

Форма из таблицы. Как правильно оформить вид

Сообщение selfauthor »

Есть форма ActiveForm.
Внутри неё располагается таблица GridView, которая помимо отображаемых данных двух столбцах содержит dropDownList и checkbox.
Т.е. каждая строчка таблицы содержит по одному списку и одному чек-боксу. Список отображает реальное состояние одного из полей в таблице. А чекбокс - просто пометка строки, которую надо будет удалить после отправки формы.
Как правильно сконфигурировать эти два поля, чтобы их name состоял из строки и индекса, соответствующего id строки?
Опять же, как правильно вписать эти поля формы в поля таблицы?

(Гуглил - не нашёл ничего, простите) :(
Аватара пользователя
selfauthor
Сообщения: 26
Зарегистрирован: 2023.10.09, 19:35
Откуда: Москва

Re: Форма из таблицы. Как правильно оформить вид

Сообщение selfauthor »

С чек-боксом справился. (С помощью класса yii\grid\CheckboxColumn)
Как сделать выпадающий список, чтобы он вписался в форму и показывал текущее состояние определённого поля таблицы (enum)?
Аватара пользователя
selfauthor
Сообщения: 26
Зарегистрирован: 2023.10.09, 19:35
Откуда: Москва

Re: Форма из таблицы. Как правильно оформить вид

Сообщение selfauthor »

Благодарю!
Передача данных из формы и валидация - тоже ценная вещь, но у меня вопрос про отображение.
В примере поля формы выдаются в цикле. А что на счёт GridView? Или им в таком случае лучше не пользоваться?
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Форма из таблицы. Как правильно оформить вид

Сообщение ElisDN »

selfauthor писал(а): 2023.11.25, 23:36 А что на счёт GridView?

Код: Выделить всё

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'columns' => [
        'id',
        'username',
        [
            'attribute' => 'status',
            'format' => 'raw',
            'value' => function ($model, $key, $index) use ($form) {
                return $form->field($model, "[$key]status");
            },
        ],
    ],
]); ?>
Ответить