kiamoz
kiamoz

Reputation: 714

yii2 checkboxList custom class

Here is the sample code from Yii2 checkboxList, I want to add custom class for each Item in checkboxList but I don't know how and where can I add that!
Could you please help me please ..

$list = [0 => 'PHP', 1 => 'MySQL', 2 => 'Javascript'];
$list2 = [0,2];

echo Html::checkboxList('CuisineId',$list2,$list,array('class' => 'test' ));

Thanks in advance.

Upvotes: 2

Views: 11275

Answers (2)

sdlins
sdlins

Reputation: 2295

Just in case you only need to change the label options:

<?= Html::checkboxList('CuisineId', $list, $items, [
    'itemOptions' => [
        'labelOptions' => [
            'style' => 'font-weight: normal',
            'class' => 'some-custom-class',
        ],
    ],
]) ?>

Note: Everything you put inside itemOptions will be passed to Html::checkbox() as its own options when creating each checkbox. It means you can pass class, style, label, labelOptions, etc.

Upvotes: 3

soju
soju

Reputation: 25302

If you want to add the same class, you should use itemOptions :

echo Html::checkboxList('CuisineId', $list2, $list, ['itemOptions'=>['class' => 'test']]);

Or if you want a custom class for each item, you should use item callback :

echo Html::checkboxList('CuisineId', $list2, $list, ['item'=>function ($index, $label, $name, $checked, $value){
    return Html::checkbox($name, $checked, [
       'value' => $value,
       'label' => $label,
       'class' => 'any class',
    ]);
}]);

Read more : http://www.yiiframework.com/doc-2.0/yii-helpers-basehtml.html#checkboxList()-detail

EDIT : add example

Upvotes: 9

Related Questions