Maison développement back-end tutoriel php Comment interroger et mettre à jour des données dans CakePHP ?

Comment interroger et mettre à jour des données dans CakePHP ?

Jun 03, 2023 pm 02:11 PM
更新 cakephp 数据查询

CakePHP est un framework PHP populaire qui fournit une fonctionnalité ORM (Object Relational Mapping) pratique, ce qui rend très facile l'interrogation et la mise à jour de la base de données.

Cet article expliquera comment interroger et mettre à jour des données dans CakePHP. Nous commencerons par des requêtes et des mises à jour simples, puis progresserons pour voir comment utiliser les conditions et les modèles associés pour interroger et mettre à jour les données de manière plus complexe.

  1. Requête de base

Tout d'abord, voyons comment créer la requête la plus simple. Supposons que nous ayons une table de données appelée « Utilisateurs » et que nous souhaitions récupérer tous les enregistrements utilisateur.

Dans CakePHP, nous pouvons utiliser la méthode find pour récupérer des données. Voici un exemple de code :

$users = $this->Users->find('all');
Copier après la connexion

Cela renverra un tableau contenant tous les enregistrements utilisateur. Si vous souhaitez récupérer un seul enregistrement, vous pouvez utiliser la méthode find('first') :

$user = $this->Users->find('first');
Copier après la connexion

Cela renverra le premier enregistrement utilisateur. Vous pouvez également utiliser la méthode find('list') pour récupérer une table de hachage de paires clé-valeur, où la clé est la clé primaire de l'enregistrement et la valeur est le champ spécifié. Par exemple, si vous souhaitez obtenir une table de hachage des identifiants et des noms d'utilisateurs, vous pouvez utiliser le code suivant :

$users = $this->Users->find('list', ['keyField' => 'id', 'valueField' => 'name']);
Copier après la connexion
  1. Requête conditionnelle

Lorsque vous devez effectuer une requête conditionnelle, CakePHP fournit un moyen pratique de filtrer les données. résultats de la requête. Vous pouvez utiliser les méthodes Where et andWhere pour créer des conditions de requête par programmation. Voici un exemple de code :

$users = $this->Users->find()
    ->where(['age >' => 18, 'name LIKE' => '%John%'])
    ->andWhere(['gender' => 'male'])
    ->all();
Copier après la connexion

Dans le code ci-dessus, nous avons utilisé les méthodes Where et andWhere pour spécifier les conditions de requête. La première condition spécifie les utilisateurs âgés de plus de 18 ans et dont le nom contient « John ». La deuxième condition spécifie les utilisateurs de genre « masculin ». Enfin, nous utilisons la méthode all pour récupérer tous les enregistrements utilisateur qui répondent aux critères.

Vous pouvez également utiliser des conditions de requête complexes, telles que IN, NOT IN, BETWEEN, etc. Voici un exemple de code :

$users = $this->Users->find()
    ->where(['age BETWEEN' => [18, 25]])
    ->andWhere(['state IN' => ['CA', 'NY', 'TX']])
    ->all();
Copier après la connexion

Dans le code ci-dessus, nous avons utilisé les conditions BETWEEN et IN pour spécifier les utilisateurs qui ont entre 18 et 25 ans et dont le statut est CA, NY ou TX. De même, nous utilisons la méthode all pour récupérer tous les enregistrements utilisateur qui répondent aux critères.

  1. Requête associée

Dans CakePHP, vous pouvez facilement effectuer des requêtes associées. Supposons que nous ayons une table de données appelée « Messages » en plus des enregistrements d'utilisateurs, et que chaque utilisateur ait plusieurs publications. Voyons comment interroger un utilisateur et toutes ses publications.

Tout d'abord, nous devons définir l'association Posts dans le modèle User. Nous pouvons utiliser la méthode AppartientTo pour associer la table de données au modèle User. Voici un exemple de code :

class UsersTable extends Table
{
    public function initialize(array $config)
    {
        $this->hasMany('Posts');
    }
}
Copier après la connexion

Dans le code ci-dessus, nous utilisons la méthode hasMany pour spécifier l'association entre le modèle User et la table de données Posts.

Nous pouvons désormais utiliser la méthode find de la requête associée pour obtenir tous les utilisateurs et tous leurs articles. Voici un exemple de code :

$users = $this->Users->find('all', [
    'contain' => ['Posts']
]);
Copier après la connexion

Dans le code ci-dessus, nous utilisons l'option contain pour spécifier la table de données à associer. Vous pouvez également spécifier plusieurs associations via un tableau. Par exemple, si votre modèle Utilisateur est également associé à une table Commentaires, vous pouvez écrire comme ceci :

$users = $this->Users->find('all', [
    'contain' => ['Posts', 'Comments']
]);
Copier après la connexion

Lors de l'exécution des requêtes associées, CakePHP utilisera des jointures internes (INNER JOIN) pour combiner les deux tables de données afin d'obtenir les données associées. Si vous souhaitez utiliser un LEFT JOIN ou un RIGHT JOIN, vous pouvez les spécifier dans la définition de l'association.

  1. Mise à jour des données

Lorsque vous devez mettre à jour des enregistrements dans la base de données, CakePHP fournit un moyen pratique d'effectuer des opérations de mise à jour. Vous pouvez utiliser la méthode updateAll pour mettre à jour les enregistrements par programmation. Voici un exemple de code :

$result = $this->Users->updateAll(
    ['age' => 25],
    ['name LIKE' => '%John%']
);
Copier après la connexion

Dans le code ci-dessus, nous utilisons la méthode updateAll pour mettre à jour tous les utilisateurs âgés de 25 ans dont le nom contient "John". La méthode updateAll accepte deux paramètres. Le premier paramètre spécifie la colonne et la valeur à définir. Dans l'exemple ci-dessus, nous avons fixé l'âge à 25 ans. Le deuxième paramètre spécifie les critères pour que l'enregistrement soit mis à jour.

Si vous souhaitez mettre à jour un seul enregistrement, vous pouvez utiliser la méthode de sauvegarde. Voici un exemple de code :

$user = $this->Users->get(1);
$user->age = 25;
$this->Users->save($user);
Copier après la connexion

Dans le code ci-dessus, nous avons utilisé la méthode get pour récupérer l'enregistrement utilisateur avec l'ID 1. Nous mettons ensuite à jour l'âge de l'enregistrement et utilisons la méthode de sauvegarde pour enregistrer les modifications.

Lorsque vous devez supprimer des enregistrements, vous pouvez également utiliser les méthodes deleteAll et delete fournies par CakePHP.

Résumé

Dans cet article, nous avons présenté comment effectuer une requête et une mise à jour de données dans CakePHP. Nous avons appris à utiliser des méthodes simples de requête et de mise à jour, ainsi qu'à utiliser des modèles conditionnels et relationnels pour des requêtes et des mises à jour plus complexes. En utilisant la fonctionnalité ORM pratique fournie par CakePHP, vous pouvez facilement manipuler la base de données en fonction des besoins de votre application.

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.

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)

Comment réparer la mise à jour de Blizzard Battle.net bloquée à 45 % ? Comment réparer la mise à jour de Blizzard Battle.net bloquée à 45 % ? Mar 16, 2024 pm 06:52 PM

La mise à jour de Blizzard Battle.net reste bloquée à 45%, comment le résoudre ? Récemment, de nombreuses personnes ont été bloquées à la barre de progression de 45 % lors de la mise à jour du logiciel. Elles resteront toujours bloquées après plusieurs redémarrages. Alors, comment résoudre cette situation ? Nous pouvons réinstaller le client, changer de région et supprimer des fichiers. ce didacticiel logiciel partagera les étapes de fonctionnement, dans l'espoir d'aider plus de personnes. La mise à jour de Blizzard Battle.net reste bloquée à 45 %, comment résoudre ce problème ? 1. Client 1. Tout d'abord, vous devez confirmer que votre client est la version officielle téléchargée depuis le site officiel. 2. Sinon, les utilisateurs peuvent accéder au site Web du serveur asiatique pour télécharger. 3. Après avoir entré, cliquez sur Télécharger dans le coin supérieur droit. Remarque : veillez à ne pas sélectionner le chinois simplifié lors de l'installation.

Configuration du projet CakePHP Configuration du projet CakePHP Sep 10, 2024 pm 05:25 PM

Dans ce chapitre, nous comprendrons les variables d'environnement, la configuration générale, la configuration de la base de données et la configuration de la messagerie dans CakePHP.

CakePHP travaillant avec la base de données CakePHP travaillant avec la base de données Sep 10, 2024 pm 05:25 PM

Travailler avec la base de données dans CakePHP est très simple. Nous comprendrons les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer) dans ce chapitre.

Mise à jour d'Epic Seven du 22 février : la deuxième semaine de Miracle Maid Kingdom commence Mise à jour d'Epic Seven du 22 février : la deuxième semaine de Miracle Maid Kingdom commence Feb 21, 2024 pm 05:52 PM

Il a été confirmé qu'Epic Seven sera mis à jour en continu à 11 heures le 22 février. Cette mise à jour nous apportera de nombreuses nouvelles activités et contenus, notamment une augmentation du taux d'invocation limité de Leia et Sweet Miracle, une mise à jour du mystérieux pool de cartes. , La deuxième semaine de l'histoire parallèle spéciale Miracle Maid Kingdom a commencé. Jetons un coup d'œil à cette mise à jour. Calendrier de mise à jour du jeu mobile : The Seventh Epic sera mis à jour le 22 février : The Miracle Maid Kingdom ouvrira pour la deuxième semaine ※La chance d'invocation limitée de "Leia" et "Sweet Miracle" est augmentée ! ■Durée d'invocation limitée : -22/02/2024 (jeudi) 11h00 ~ 07/03/2024 (jeudi) 10h59 ■Attributs et professions du personnage : attributs naturels, guerrier ■Introduction au personnage : groupe de quatre personnes. sous-chanteur de "Miracle Maid Kingdom" et Bei

Comment installer Angular sur Ubuntu 24.04 Comment installer Angular sur Ubuntu 24.04 Mar 23, 2024 pm 12:20 PM

Angular.js est une plateforme JavaScript librement accessible pour créer des applications dynamiques. Il vous permet d'exprimer rapidement et clairement divers aspects de votre application en étendant la syntaxe HTML en tant que langage de modèle. Angular.js fournit une gamme d'outils pour vous aider à écrire, mettre à jour et tester votre code. De plus, il offre de nombreuses fonctionnalités telles que le routage et la gestion des formulaires. Ce guide expliquera comment installer Angular sur Ubuntu24. Tout d’abord, vous devez installer Node.js. Node.js est un environnement d'exécution JavaScript basé sur le moteur ChromeV8 qui vous permet d'exécuter du code JavaScript côté serveur. Être à Ub

Lantern and Dungeon mis à jour le 29 février : Version remasterisée ╳ Lien 'Legend of Nezha' Lantern and Dungeon mis à jour le 29 février : Version remasterisée ╳ Lien 'Legend of Nezha' Feb 28, 2024 am 08:13 AM

Il a été confirmé que Lantern and Dungeons sera mis à jour le 29 février. Après la mise à jour, la version remasterisée de Lantern and Dungeons sera lancée, et la version remasterisée sera également liée à Legend of Nezha. profession, et les joueurs peuvent directement changer de travail, le contenu du donjon sera également étendu, de nouvelles zones de donjon seront ouvertes, etc. Calendrier de mise à jour du jeu mobile Lantern and Dungeon mis à jour le 29 février : version remasterisée ╳ Contenu clé de la version de liaison "Legend of Nezha" Nouveau métier, pourquoi êtes-vous invité à changer de métier ? . J'ai entendu dire qu'après avoir changé de travail, le détenteur de la lanterne peut également acquérir de nombreuses compétences intéressantes. Goro s'est exclamé : les pantalons thaïlandais sont chauds ! La Légende de Nezha se réunit ! Marcher sur la roue chaude, tenant le cercle du ciel et de la terre en main ♫ ~ Les petits héros à la fois sages et courageux : Nezha et Little Dragon Girl sont sur le point d'arriver

Discuter de CakePHP Discuter de CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

CakePHP créant des validateurs CakePHP créant des validateurs Sep 10, 2024 pm 05:26 PM

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

See all articles