Yii2: Как назначить идентификатор для каждого флажка в checkboxList () - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть checkboxList , созданный с помощью Yii2, и мне нужно назначить идентификатор для каждого флажка (поэтому я могу использовать его с jQuery). Но я не знаю, как это сделать.

<?
$cities ArrayHelper::map(Cities::find()->all(), 'city_id', 'city_name');
echo Html::checkboxList(
    'cities'
    null,
    $cities,
    [
        'itemOptions' => [
            'id' => $cities->city_id // MY PROBLEM IS IN THIS LINE,
        ],
    ]
) ?>

Это ошибка:

enter image description here

Ответы [ 2 ]

2 голосов
/ 22 апреля 2020

Если вы проверите документы здесь , вы можете передать $options (4-й аргумент yii\helpers\Html::checkboxList) item ключ анонимной функции, где вы можете явно указать визуализацию HTML структура вашего списка флажков, как это:

<?= Html::checkboxList('cities', null, $cities, [
        'item' => function($index, $label, $name, $checked, $value) use ($cities) {
            return "<label class='checkbox col-md-4'>
                        <input type='checkbox' 
                               {$checked} 
                               name='{$name}'
                               value='{$value}' 
                               id='" . $cities[$index]->city_id . "'>
                        {$label}
                   </label>";
        }
    ]);
?>
0 голосов
/ 22 апреля 2020
<?
$cities ArrayHelper::map(Cities::find()->all(), 'city_id', 'city_name');
echo Html::checkboxList(
    'cities'
    null,
    $cities,
    [
        'itemOptions' => [
            'id' => $cities->city_id // MY PROBLEM IS IN THIS LINE,
        ],
    ]
) ?>

должно быть

<?= Html::checkboxList('cities', null, ArrayHelper::map(Cities::find()->all(), 'city_id', 'city_name')) ?>
...