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();
wie folgt:
{ "1001": { "uid": "1001", "name": "张三" }, "1002": { "uid": "1002", "name": "李四" }, "1003": { "uid": "1003", "name": "王五" } }
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();
Die Abfrageergebnisse lauten wie folgt:
{ "1001张三": { "uid": "1001", "name": "张三" }, "1002李四": { "uid": "1002", "name": "李四" }, "1003王五": { "uid": "1003", "name": "王五" } }
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



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.

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

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.

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.

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.

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.

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.

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.
