php - Yii2 Html::dropDownList 和 Html::activeDropDownList 权衡

标签 php yii2

在 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 选项(例如“多个”)和 css(例如“类”)。

对于能够使用下拉列表来指定列表是多选的并具有预选值的能力有什么帮助吗?此外,如果有人指导我找到一个资源,我可以在其中阅读有关何时何地选择 activeDropDownListdropDownList 的信息,我将非常感激。

谢谢!

最佳答案

@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'
        ]
) ?>

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

关于php - Yii2 Html::dropDownList 和 Html::activeDropDownList 权衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32526601/

相关文章:

php - Symfony2 : Problems with function parameter

yii2 - 将 Yii2 应用程序部署到共享主机步骤

php - 在 yii2 中上传 Ajax 文件

php - 使用 .htaccess 在目录(包括所有子目录)中禁用 PHP

php - 使用 password_hash() 来保护登录密码?

php - PHP 输出表中的超链接

mysql - Yii2 Sphinx 搜索大于小于或小于小于条件 OR "BETWEEN"

php - Yii2 kartik datepicker 多重内联

php - 如何更改 Yii2 中的目录等 url 参数?

php - 设计回波数据