1. 程式人生 > >Yii/Yii2 查詢返回以某特定列為索引(鍵)的陣列

Yii/Yii2 查詢返回以某特定列為索引(鍵)的陣列

               

在Yii1.x中,要想查詢語句返回以特定列為鍵(key)的陣列資料,程式碼如下(下述例子以表主鍵為返回陣列索引):

$users = User::model()->findAll(array('condition'=>'status = 1', 'index'=> 'id'));
其中通過findAll方法傳入的index引數將被CActiveRecord::populateRecords方法用來按該index為鍵來整理查詢返回資料。

在Yii2中,由於查詢構造實際實現者為ActiveQuery,因此相應的處理也移植到ActiveQuery類的indexBy方法中,程式碼如下:

User::find()->where('status=:status'
, [':status' => User::STATUS_ACTIVATED])->indexBy('id')->all();