php - Yii2 kartik select2 小部件也显示值问题

标签 php yii2 kartik-v

我创建了一个 yii2 kartik select2 小部件来选择多个车型,如下所示

<?= Select2::widget([
        'name' => 'drp-make',
        'data' => Car::getCarMakesEnglish(),
        'value' => explode(",",$model->drp_make),
        'options' => [
          'id'=>'drp-make',
          'placeholder' => 'All Makes',
          'multiple' => true
        ]
      ]); ?>

以及为select2获取数据的函数,如

 public static function getCarMakesEnglish(){
            $out=array();
        $makes=CarMakes::find()->select(['id','make_eng'])->all();
        foreach ($makes as $make) {
            array_push($out,array($make['id'] => $make['make_eng']));
        }
        return $out;
    }

它的工作完美。但是有一个问题。请看下面的图片

enter image description here

它不仅显示名称而且还显示值。我只想显示品牌名称。如何做到这一点

最佳答案

因为您将一个数组推送到 $out 的每个索引

array_push($out,array($make['id'] => $make['make_eng']))

你应该使用yii\helpers\ArrayHelper::map()相反,它会为你做这件事。将函数 getCarMakesEnglish() 更改为以下内容

public static function getCarMakesEnglish()
{
    $makes = CarMakes::find()->select(['id', 'make_eng'])->all();
    return \yii\helpers\ArrayHelper::map($makes,'id','make_eng');
}

关于php - Yii2 kartik select2 小部件也显示值问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60239575/

相关文章:

php - PHP7 的 PDO ext 是否将整个结果集读入内存?

php - 过滤 GridView 中不在表 yii2 中的自定义列

yii - Kartik Grid 可编辑列,扩展行样式不适用

javascript - Yii 2 kartikdialog.prompt 输入类型textarea

php - 如何使用网络摄像头和 php 或 javascript 扫描二维码

php - 检查 PHP 中 URL 中是否有特定查询

postgresql - 如何通过 Yii2 将空数组插入 jsonb 列(pgsql)?

yii2 - 仅在重定向时在 pjax 中推送状态

php - Jwt 身份验证错误参数 3 传递给 Lcobucci\JWT\Signer\Hmac::doVerify()

php - 将 php 数组与 sql 结果进行比较并执行某些操作