Yii2 Html::dropDownList 和 Html::activeDropDownList 的权衡

2023-12-29

在 Yii2 中,使用Html::activeDropDownList,我可以以如下形式提交数据:

 <?= Html::activeDropDownList($model, 'category', ArrayHelper::map($categories, 'id', 'name'), [
       'multiple' => 'multiple',
       'class' => 'multiselect',
 ]) ?>

有没有办法在上面指定预选的类别? 我知道可以使用Html::dropDownLost像下面这样:

<?= Html::dropDownList('category', [1, 3, 5], ArrayHelper::map($categories, 'id', 'name'), [
     'multiple' => 'multiple',
     'class' => 'multiselect',
]) ?>

但有一个权衡!没有地方表明这是附加到某个模型以提交的一些数据,因为正在使用Html::activeDropDownList.

我发现的解决方案之一是使用ActiveForm像下面这样:

<?= $form->field($model, 'category')
      ->dropDownList('category', [1, 3, 5], ArrayHelper::map($categories, 'id', 'name')
]) ?>

最后一个选项的问题是我无法指定 html 选项(例如“multiple”)和 css(例如“class”)。

对于能够使用下拉列表来指定该列表是多选的并且具有预选值的能力有什么帮助吗?另外,如果有人引导我找到一个资源,让我可以阅读有关何时何地选择的信息activeDropDownList or dropDownList,我真的很感激。

Thanks!


@scaisEdge的答案是正确的,但您可以尝试另一种选择:

<?php 
$model->category = [1,3,5]; //pre-selected values list
echo $form->field($model, 'category')
    ->dropDownList(ArrayHelper::map($categories, 'id', 'name'), 
        [
            'multiple' => 'multiple',
            'class' => 'YOUR_CLASS'
        ]
) ?>

该代码也是有效且经过测试的。 快乐编码:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Yii2 Html::dropDownList 和 Html::activeDropDownList 的权衡 的相关文章

随机推荐