Heim PHP-Framework YII So verwenden Sie indexBy() in Yii2

So verwenden Sie indexBy() in Yii2

Nov 26, 2019 pm 04:55 PM
yii2

So verwenden Sie indexBy() in Yii2

In der Projektentwicklung werden häufig einige spezielle Werte als Index des Arrays verwendet. Im Allgemeinen können die Daten zuerst abgefragt und dann das Array in das Array gespleißt werden erforderliches Format in einer Schleife. Das YII2-Framework bietet jedoch eine einfachere Methode indexBy().

Wenn Sie die all()-Methode aufrufen, gibt sie ein Array zurück, das durch aufeinanderfolgende ganzzahlige Werte indiziert ist.
Manchmal möchten Sie möglicherweise ein bestimmtes Feld oder einen bestimmten Ausdruckswert als Index-Ergebnissatz-Array verwenden. Dann können Sie die Methode indexBy() verwenden, bevor Sie all() aufrufen, um diesen Zweck zu erreichen.
Zum Beispiel lautet das Abfrageergebnis von

// 以uid作为key值
$query = User::find()
    ->select(['uid', 'name'])
    ->indexBy('uid')
    ->asArray()
    ->all();
Nach dem Login kopieren

wie folgt:

{
  "1001": {
    "uid": "1001",
    "name": "张三"
  },
  "1002": {
    "uid": "1002",
    "name": "李四"
  },
  "1003": {
    "uid": "1003",
    "name": "王五"
  }
}
Nach dem Login kopieren

Wenn Sie den Wert des Ausdrucks als Index verwenden müssen, müssen Sie nur eine anonyme Funktion übergeben zur indexBy()-Methode:

// 以uid和name组合作为key值
$query = User::find()
    ->select(['uid', 'name'])
    ->indexBy(function ($row) {
        return $row['uid'] . $row['name'];   // row中使用的字段名只能是查询返回的字段名
    })
    ->asArray()
    ->all();
Nach dem Login kopieren

Die Abfrageergebnisse lauten wie folgt:

{
  "1001张三": {
    "uid": "1001",
    "name": "张三"
  },
  "1002李四": {
    "uid": "1002",
    "name": "李四"
  },
  "1003王五": {
    "uid": "1003",
    "name": "王五"
  }
}
Nach dem Login kopieren

Hinweis: Im Gegensatz zu Abfragemethoden wie groupBy() oder orderBy() werden sie in einen Teil davon konvertiert Die SQL-Abfrageanweisung, und diese Methode (indexBy) wird ab verwendet. Sie wird erst wirksam, nachdem die Datenbank die Daten abgerufen hat. Das bedeutet, dass nur diese Spaltennamen in Ihrer SELECT-Abfrage verwendet werden können. Wenn Sie außerdem die Tabellennamenverbindung verwenden, um Spaltennamen abzurufen, z. B. customer.id, enthält das Ergebnis nur die ID-Spalte, sodass Sie ->indexBy(‘id’) ohne das Tabellennamenpräfix aufrufen müssen.

Empfohlen: „YII-Tutorial

Das obige ist der detaillierte Inhalt vonSo verwenden Sie indexBy() in Yii2. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was sind die besten Praktiken für die Verwendung von YII in einer Cloud-nativen Umgebung? Was sind die besten Praktiken für die Verwendung von YII in einer Cloud-nativen Umgebung? Mar 18, 2025 pm 04:39 PM

In dem Artikel werden Best Practices für die Bereitstellung von YII-Anwendungen in Cloud-nativen Umgebungen erörtert und sich auf Skalierbarkeit, Zuverlässigkeit und Effizienz durch Containerisierung, Orchestrierung und Sicherheitsmaßnahmen konzentriert.

Was sind die wichtigsten Überlegungen für die Verwendung von YII in einer serverlosen Architektur? Was sind die wichtigsten Überlegungen für die Verwendung von YII in einer serverlosen Architektur? Mar 18, 2025 pm 04:33 PM

In dem Artikel werden wichtige Überlegungen zur Verwendung von YII in serverlosen Architekturen erörtert, wobei der Schwerpunkt auf Staatenlosigkeit, Kaltstarts, Funktionsgröße, Datenbankinteraktionen, Sicherheit und Überwachung liegt. Es deckt auch Optimierungsstrategien und potenzielle Integration ab

Was sind die besten Strategien für das Testen von YII -Anwendungen mit Codecception? Was sind die besten Strategien für das Testen von YII -Anwendungen mit Codecception? Mar 18, 2025 pm 04:27 PM

In dem Artikel werden Strategien zum Testen von YII-Anwendungen mithilfe von Codecception erörtert, wobei der Schwerpunkt auf integrierten Modulen, BDD, verschiedenen Testtypen, Verspottung, CI-Integration und Codeabdeckung liegt.

Wie implementieren Sie Echtzeitdatensynchronisation mit YII und Websockets? Wie implementieren Sie Echtzeitdatensynchronisation mit YII und Websockets? Mar 18, 2025 pm 04:34 PM

In dem Artikel wird die Implementierung der Echtzeitdatensynchronisation mithilfe von YII und Websockets erörtert, wobei die Setup, Integration und Best Practices für Leistung und Sicherheit behandelt werden.

Was sind die besten Tools zur Überwachung und Profilierung von YII -Anwendungsleistung? Was sind die besten Tools zur Überwachung und Profilierung von YII -Anwendungsleistung? Mar 17, 2025 pm 01:52 PM

In dem Artikel werden Tools zur Überwachung und Profilierung von YII -Anwendungsleistung erörtert, einschließlich YII -Debug -Symbolleiste, Blackfire, New Relic, Xdebug und APM -Lösungen wie Datadog und Dynatrace.

Was sind die wichtigsten Merkmale des integrierten Test-Frameworks von YII? Was sind die wichtigsten Merkmale des integrierten Test-Frameworks von YII? Mar 18, 2025 pm 04:41 PM

Das integrierte Test-Framework von YII verbessert die Anwendungstests mit Funktionen wie Phpunit-Integration, Fixture-Management und Unterstützung für verschiedene Testtypen, Verbesserung der Codequalität und Entwicklungspraktiken.

Was sind die wichtigsten Überlegungen für die Bereitstellung von YII -Anwendungen in der Produktion? Was sind die wichtigsten Überlegungen für die Bereitstellung von YII -Anwendungen in der Produktion? Mar 17, 2025 pm 01:58 PM

In dem Artikel werden wichtige Überlegungen zur Bereitstellung von YII -Anwendungen in der Produktion erörtert, wobei der Schwerpunkt auf Umgebungsaufnahmen, Konfigurationsmanagement, Leistungsoptimierung, Sicherheit, Protokollierung, Überwachung, Bereitstellungsstrategien und Backup-/Wiederherstellungspläne liegt.

Was sind die wichtigsten Vorteile der Verwendung von YII für den Bau von SaaS -Anwendungen? Was sind die wichtigsten Vorteile der Verwendung von YII für den Bau von SaaS -Anwendungen? Mar 18, 2025 pm 04:25 PM

In dem Artikel werden die Vorteile von YII für die SaaS-Entwicklung erörtert, die sich auf Leistung, Sicherheit und schnelle Entwicklungsmerkmale konzentriert, um die Skalierbarkeit zu verbessern und Zeit-auf-Markt zu verkürzen.

See all articles