Comment utiliser indexBy() dans Yii2
Dans le développement de projets, certaines valeurs spéciales sont souvent utilisées comme index du tableau. Généralement, les données peuvent d'abord être interrogées, puis le tableau peut être intégré au tableau. format requis dans une boucle. Cependant, le framework YII2 fournit une méthode indexBy() plus simple.
Lorsque vous appelez la méthode all(), elle renverra un tableau indexé par des valeurs entières consécutives.
Parfois, vous souhaiterez peut-être utiliser un champ ou une valeur d'expression spécifique comme tableau de jeu de résultats d'index. Ensuite, vous pouvez utiliser la méthode indexBy() avant d'appeler all() pour atteindre cet objectif.
Par exemple, le résultat de la requête de
// 以uid作为key值 $query = User::find() ->select(['uid', 'name']) ->indexBy('uid') ->asArray() ->all();
est le suivant :
{ "1001": { "uid": "1001", "name": "张三" }, "1002": { "uid": "1002", "name": "李四" }, "1003": { "uid": "1003", "name": "王五" } }
Si vous devez utiliser la valeur de l'expression comme index, il vous suffit de passer une fonction anonyme à la méthode indexBy() :
// 以uid和name组合作为key值 $query = User::find() ->select(['uid', 'name']) ->indexBy(function ($row) { return $row['uid'] . $row['name']; // row中使用的字段名只能是查询返回的字段名 }) ->asArray() ->all();
Les résultats de la requête sont les suivants :
{ "1001张三": { "uid": "1001", "name": "张三" }, "1002李四": { "uid": "1002", "name": "李四" }, "1003王五": { "uid": "1003", "name": "王五" } }
Remarque : contrairement aux méthodes de requête telles que groupBy() ou orderBy(), elles seront converties en une partie de l'instruction de requête SQL, et cette méthode (indexBy) est utilisée à partir de Elle ne prend effet qu'une fois que la base de données a récupéré les données. Cela signifie que seuls ces noms de colonnes peuvent être utilisés dans votre requête SELECT. De plus, lorsque vous utilisez la connexion par nom de table pour obtenir des noms de colonnes, tels que customer.id, le résultat ne contiendra que la colonne id, vous devez donc appeler ->indexBy('id') sans le préfixe du nom de table.
Recommandé : "Tutoriel YII"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

L'article traite des meilleures pratiques pour déployer des applications YII dans des environnements natifs du cloud, en se concentrant sur l'évolutivité, la fiabilité et l'efficacité par la conteneurisation, l'orchestration et les mesures de sécurité.

L'article traite des considérations clés pour l'utilisation de YII dans des architectures sans serveur, en se concentrant sur l'état, les démarrages à froid, la taille de la fonction, les interactions de base de données, la sécurité et la surveillance. Il couvre également les stratégies d'optimisation et les intégrati potentiels

L'article traite des stratégies pour tester les applications YII à l'aide de CodeCeception, en se concentrant sur l'utilisation de modules intégrés, BDD, différents types de tests, moquerie, intégration CI et couverture de code.

Le framework de test intégré de YII améliore les tests d'application avec des fonctionnalités telles que l'intégration du phpunit, la gestion des fixations et la prise en charge de divers types de tests, améliorant la qualité du code et les pratiques de développement.

L'article discute de la mise en œuvre de la synchronisation des données en temps réel à l'aide de YII et WebSockets, couvrant la configuration, l'intégration et les meilleures pratiques de performance et de sécurité.

L'article traite des outils de surveillance et de profilage des performances des applications YII, notamment la barre d'outils de débogage YII, le feu noir, la nouvelle relique, le XDebug et les solutions APM comme Datadog et Dynatrace.

L'article traite des avantages de YII pour le développement du SaaS, en se concentrant sur la performance, la sécurité et les caractéristiques de développement rapide pour améliorer l'évolutivité et réduire le délai de commercialisation.

L'article traite des considérations clés pour le déploiement d'applications YII en production, en se concentrant sur la configuration de l'environnement, la gestion de la configuration, l'optimisation des performances, la sécurité, la journalisation, la surveillance, les stratégies de déploiement et les plans de sauvegarde / récupération.
