Maison cadre php YII Comment utiliser indexBy() dans Yii2

Comment utiliser indexBy() dans Yii2

Nov 26, 2019 pm 04:55 PM
yii2

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();
Copier après la connexion

est le suivant :

{
  "1001": {
    "uid": "1001",
    "name": "张三"
  },
  "1002": {
    "uid": "1002",
    "name": "李四"
  },
  "1003": {
    "uid": "1003",
    "name": "王五"
  }
}
Copier après la connexion

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();
Copier après la connexion

Les résultats de la requête sont les suivants :

{
  "1001张三": {
    "uid": "1001",
    "name": "张三"
  },
  "1002李四": {
    "uid": "1002",
    "name": "李四"
  },
  "1003王五": {
    "uid": "1003",
    "name": "王五"
  }
}
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Quelles sont les meilleures pratiques pour utiliser YII dans un environnement natif du cloud? Quelles sont les meilleures pratiques pour utiliser YII dans un environnement natif du cloud? Mar 18, 2025 pm 04:39 PM

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é.

Quelles sont les principales considérations pour l'utilisation de YII dans une architecture sans serveur? Quelles sont les principales considérations pour l'utilisation de YII dans une architecture sans serveur? Mar 18, 2025 pm 04:33 PM

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

Quelles sont les meilleures stratégies pour tester les applications YII avec CodeCeception? Quelles sont les meilleures stratégies pour tester les applications YII avec CodeCeception? Mar 18, 2025 pm 04:27 PM

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.

Quelles sont les principales caractéristiques du cadre de test intégré de YII? Quelles sont les principales caractéristiques du cadre de test intégré de YII? Mar 18, 2025 pm 04:41 PM

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.

Comment implémenter la synchronisation des données en temps réel avec YII et WebSockets? Comment implémenter la synchronisation des données en temps réel avec YII et WebSockets? Mar 18, 2025 pm 04:34 PM

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é.

Quels sont les meilleurs outils de surveillance et de profilage des performances d'application YII? Quels sont les meilleurs outils de surveillance et de profilage des performances d'application YII? Mar 17, 2025 pm 01:52 PM

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.

Quels sont les principaux avantages de l'utilisation de YII pour construire des applications SaaS? Quels sont les principaux avantages de l'utilisation de YII pour construire des applications SaaS? Mar 18, 2025 pm 04:25 PM

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.

Quelles sont les principales considérations pour déployer des applications YII en production? Quelles sont les principales considérations pour déployer des applications YII en production? Mar 17, 2025 pm 01:58 PM

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.

See all articles