Yii2返回以主键id为键名的数组

branch.php

<?php

namespace appmodels;

use Yii;

/**
 * This is the model class for table "branch".
 *
 * @property integer $id
 * @property string $name
 *
 */
class Branch extends yiidbActiveRecord
{
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return 'branch';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['name'], 'string', 'max' => 45],
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'name' => 'Name',
        ];
    }
  public static function getKeyValuePairs()
    {
        $sql = 'SELECT id, name FROM ' . self::tableName() . ' ORDER BY name ASC';
    
        return Yii::$app->db->createCommand($sql)->queryAll(PDO::FETCH_KEY_PAIR);
    }
}

调用

$model->getKeyValuePairs()得到如下:

显示在前端:

<?php

use yiihelpersHtml;
use yiiwidgetsActiveForm;
use appmodelsBranch;
/* @var $this yiiwebView */
/* @var $model appmodelsPos */
/* @var $form yiiwidgetsActiveForm */
?>

<div class="pos-form">

    <?php $form = ActiveForm::begin(); ?>

    <?= $form->field($model, 'serial')->textInput(['maxlength' => true]) ?>
    <?= $form->field($model, 'branch_id')->dropDownList(Branch::getKeyValuePairs())  ?>
    
    <?= $form->field($model, 'is_enable')->checkBox() ?>

    <div class="form-group">
        <?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
    </div>

    <?php ActiveForm::end(); ?>

</div>
原文地址:https://www.cnblogs.com/xiong63/p/7857985.html