国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 > php框架 > YII > 正文

Yii2中如何使用indexBy()

angryTom
發(fā)布: 2019-11-26 16:55:41
轉(zhuǎn)載
2748人瀏覽過

Yii2中如何使用indexBy()

在項目開發(fā)中經(jīng)常會使用到一些特殊的值作為數(shù)組的索引,一般可以先查詢出數(shù)據(jù)后數(shù)組循環(huán)拼接成所需的格式。不過yii2框架提供了一種更簡單的方法indexby()。

當(dāng)你在調(diào)用all()方法時,它將返回一個以連續(xù)的整型數(shù)值為索引的數(shù)組。
而有時候你可能希望使用一個特定的字段或者表達(dá)式的值來作為索引結(jié)果集數(shù)組。那么你可以在調(diào)用all()之前使用indexBy()方法來達(dá)到這個目的。
例如,

// 以uid作為key值
$query = User::find()
    ->select(['uid', 'name'])
    ->indexBy('uid')
    ->asArray()
    ->all();
登錄后復(fù)制

查詢結(jié)果如下:

{
  "1001": {
    "uid": "1001",
    "name": "張三"
  },
  "1002": {
    "uid": "1002",
    "name": "李四"
  },
  "1003": {
    "uid": "1003",
    "name": "王五"
  }
}
登錄后復(fù)制

如需使用表達(dá)式的值做為索引,那么只需要傳遞一個匿名函數(shù)給indexBy()方法即可:

// 以uid和name組合作為key值
$query = User::find()
    ->select(['uid', 'name'])
    ->indexBy(function ($row) {
        return $row['uid'] . $row['name'];   // row中使用的字段名只能是查詢返回的字段名
    })
    ->asArray()
    ->all();
登錄后復(fù)制

查詢結(jié)果如下:

{
  "1001張三": {
    "uid": "1001",
    "name": "張三"
  },
  "1002李四": {
    "uid": "1002",
    "name": "李四"
  },
  "1003王五": {
    "uid": "1003",
    "name": "王五"
  }
}
登錄后復(fù)制

注意: 與 groupBy() 或者 orderBy() 等查詢方法不同, 他們將轉(zhuǎn)換為 SQL 查詢語句的一部分,而這個方法(indexBy)在從數(shù)據(jù)庫取回數(shù)據(jù)后才生效執(zhí)行的。 這意味著只能使用那些在你的 SELECT 查詢中的列名。 此外,你用表名連接取列名的時候,比如 customer.id,結(jié)果中將只包含 id 列,因此你必須調(diào)用 ->indexBy(‘id’) 不要帶表名前綴。

推薦:《YII教程》??

以上就是Yii2中如何使用indexBy()的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!

最佳 Windows 性能的頂級免費優(yōu)化軟件
最佳 Windows 性能的頂級免費優(yōu)化軟件

每個人都需要一臺速度更快、更穩(wěn)定的 PC。隨著時間的推移,垃圾文件、舊注冊表數(shù)據(jù)和不必要的后臺進(jìn)程會占用資源并降低性能。幸運的是,許多工具可以讓 Windows 保持平穩(wěn)運行。

下載
來源:博客園網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn
作者最新文章
最新問題
開源免費商場系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://www.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號