【问题标题】:Yii2 dropdownlist WITHOUT $modelYii2 没有 $model 的下拉列表
【发布时间】:2014-11-04 12:37:16
【问题描述】:

我已经在网上广泛搜索了这个问题的解决方案。我已经知道 Yii2 的下拉方式是这样的:

<?php
use yii\helpers\ArrayHelper;
use backend\models\Standard;
?>

<?= Html::activeDropDownList($model, 's_id',
      ArrayHelper::map(Standard::find()->all(), 's_id', 'name')) ?>

但我想在没有$model 的情况下制作下拉菜单...有什么方法可以做到这一点吗?

提前谢谢你!

【问题讨论】:

    标签: php drop-down-menu yii2


    【解决方案1】:

    你也可以使用

    Html::dropDownList()

    <?= Html::dropDownList('s_id', null,
          ArrayHelper::map(Standard::find()->all(), 's_id', 'name')) ?>
    

    Yii Manual

    【讨论】:

    • 这不起作用,它会抛出错误:htmlspecialchars() 期望参数 1 是字符串,给定数组,因为作为参数,我仍然必须传递:Standard::find()-&gt;all() 这仍然是一个数组。 ..我怎样才能绕过这个?
    • 第一个参数是要分配给控件的名称,第二个是值,第三个是项。
    • 谢谢,我的参数分配错误!已解决,感谢您的快速回复。如果我再遇到问题,可以打扰您吗? P.S:我会在2分钟内接受答案......那是我达到标准时间的时候。 :D
    • 没问题,但我不能保证这样的快速响应。
    • 这违反了 MVC 原则,将代码放在视图中。
    【解决方案2】:

    你也可以这样用:

    public function getAll()
    {
        $get = Standard::find()->all();
        $result = ArrayHelper::map($get, 'id', 'name');
        return $result;
    }
    

    然后下拉:

    <?= Html::dropDownList(Standard::getAll(), ['prompt' => '--- select ---']) ?>
    

    这将解决您的错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多