Table des matières
La fonction
Requête pour différents résultats distincts#
Maison développement back-end tutoriel php Apprentissage Laravel - exemple de partage de code pour les opérations de base de données et les constructeurs de requêtes

Apprentissage Laravel - exemple de partage de code pour les opérations de base de données et les constructeurs de requêtes

Mar 21, 2017 am 09:25 AM


Récemment, l'éditeur étudie ce qui est connu comme le meilleur framework au monde – Laravel. En fait, le framework d'apprentissage, c'est aussi l'idée de framework d'apprentissage ! Je souhaite enregistrer certaines de mes expériences d'apprentissage de Laravel sur mon blog. Vous êtes invités à suivre mes autres blogs et petits livres Github pour communiquer entre eux !

Version : Laravel 5.2
Base de données : mysql 5.7
PHP7.1 L'une consiste à utiliser la méthode statique de l'objet d'apparence

pour exécuter directement la requête SQL, et l'autre consiste à utiliser la méthode statique de la classe Model (en fait aussi l'implémentation de Facade, qui utilise l'accès statique pour accéder au modèle et utilise la magie
en interne. La méthode délègue l'accès aux méthodes membres

Opération de requêteUtilisez l'instruction SQL pour exécuter l'opération de requête de sélection #

Le résultat est un tableau, et chaque valeur du tableau est renvoyée pour un objet

, vous pouvez également utiliser la liaison nommée DB<.>callStaticObtenir toutes les colonnes de données de la table de données#

Interroger une seule ligne/colonne de la table

Utilisez la première méthode pour renvoyer une seule ligne de données, qui renvoie un objet stdClass
$results = DB::select(&#39;select * from users where id = ?&#39;, [1]);foreach ($results as $res) {    echo $res->name;
}
Copier après la connexion

StdClassSi vous n'avez besoin que de la valeur d'une colonne, vous pouvez utiliser la méthode value pour obtenir directement la valeur d'une seule colonne

$results = DB::select(&#39;select * from users where id = :id&#39;, [&#39;id&#39; => 1]);
Copier après la connexion
Trouver le colonne de données en blocs de la table de données

Cette méthode est utilisée pour les opérations avec une grande quantité de données dans la table de données, et chaque fois que le résultat est obtenu Concentrez-vous sur la suppression d'une partie, utilisez la fonction de fermeture pour traitez-le, puis traitez la partie suivante. Cette commande est généralement utilisée dans le programme de ligne de commande Artisan pour traiter de grandes quantités de données
$users = DB::table(&#39;users&#39;)->get();

foreach ($users as $user)
{
    var_dump($user->name);
}
Copier après la connexion

Dans la fonction de fermeture, si <🎜 est renvoyé >, le traitement ultérieur s'arrêtera

Interroger la liste d'une certaine colonne de la table de données #
$user = DB::table(&#39;users&#39;)->where(&#39;name&#39;, &#39;John&#39;)->first();
echo $user->name;
Copier après la connexion

Par exemple, nous voulons interroger toutes les

valeurs de champ
$email = DB::table(&#39;users&#39;)->where(&#39;name&#39;, &#39;John&#39;)->value(&#39;email&#39;);
Copier après la connexion
< dans la table de caractères. 🎜>

La fonction

a ici deux paramètres

DB::table(&#39;users&#39;)->chunk(100, function($users){
    foreach ($users as $user)
    {        //
    }
});
Copier après la connexion
Le premier paramètre est la colonne à interroger, et le deuxième paramètre est la clé de chaque colonne

false

Fonctions d'agrégation

Le constructeur de requête fournit également des fonctions d'agrégation telles que

, etc.title

$titles = DB::table(&#39;roles&#39;)->pluck(&#39;title&#39;);foreach ($titles as $title) {    echo $title;
}
Copier après la connexion
Spécifiez les conditions de requête sélectionnées

pluckRequête les colonnes spécifiées#

Collection pluck( string $column, string|null $key = null)
Copier après la connexion

Si vous avez spécifié select, mais que vous souhaitez ajouter à nouveau des champs, utilisez la méthode addSelect

$roles = DB::table(&#39;roles&#39;)->pluck(&#39;title&#39;, &#39;name&#39;);foreach ($roles as $name => $title) {    echo $title;
}
Copier après la connexion

Requête pour différents résultats distincts#

count,max,min,avg,sumUtiliser l'expression native

$users = DB::table(&#39;users&#39;)->count();
$price = DB::table(&#39;orders&#39;)->max(&#39;price&#39;);
$price = DB::table(&#39;orders&#39;)->where(&#39;finalized&#39;, 1)->avg(&#39;price&#39;);
Copier après la connexion
#

L'utilisation de la méthode

peut injecter le fragment SQL requis dans la requête, mais cette méthode n'est pas recommandée si elle est mal utilisée, l'injection SQL. peut se produire

$users = DB::table(&#39;users&#39;)->select(&#39;name&#39;, &#39;email as user_email&#39;)->get();
Copier après la connexion

Opération de jointure

$query = DB::table(&#39;users&#39;)->select(&#39;name&#39;);$users = $query->addSelect(&#39;age&#39;)->get();
Copier après la connexion
Inner Join#

Utiliser join pour effectuer une opération de jointure interne Le premier paramètre de cette fonction est le nom de la table à utiliser. être connecté, et les autres paramètres spécifient les contraintes de connexion.
$users = DB::table(&#39;users&#39;)->distinct()->get();
Copier après la connexion

Left Join# Utilisez la méthode leftJoin pour effectuer une opération de jointure à gauche, les paramètres sont les mêmes que join $users =

DB::rawMéthode de jointure avancée#

$users = DB::table(&#39;users&#39;)
      ->select(DB::raw(&#39;count(*) as user_count, status&#39;))
      ->where(&#39;status&#39;, &#39;<>&#39;, 1)
      ->groupBy(&#39;status&#39;)
      ->get();
Copier après la connexion
Si les contraintes de la méthode de jointure sont plus complexes, vous pouvez utiliser une fonction de fermeture pour les spécifier

Si vous souhaitez utiliser une colonne valeurs à comparer avec le tableau spécifié dans les contraintes de jointure, vous pouvez utiliser les méthodes Where et OrWhere

Opération Union
$users = DB::table(&#39;users&#39;)
  ->join(&#39;contacts&#39;, &#39;users.id&#39;, &#39;=&#39;, &#39;contacts.user_id&#39;)
  ->join(&#39;orders&#39;, &#39;users.id&#39;, &#39;=&#39;, &#39;orders.user_id&#39;)
  ->select(&#39;users.*&#39;, &#39;contacts.phone&#39;, &#39;orders.price&#39;)
  ->get();
Copier après la connexion

Pour utiliser l'opération Union, vous pouvez d'abord créer une requête , puis utilisez la méthode union pour lier la deuxième requête

DB::table(&#39;users&#39;)
  ->leftJoin(&#39;posts&#39;, &#39;users.id&#39;, &#39;=&#39;, &#39;posts.user_id&#39;)
  ->get();
Copier après la connexion
De même,

La méthode peut également être utilisée, avec les mêmes paramètres que union.

Conditions de requête Where

<p style="margin-top: 7px;">DB::table(&#39;users&#39;)<br/>   ->join(&#39;contacts&#39;, function ($join) {<br/>       $join->on(&#39;users.id&#39;, &#39;=&#39;, &#39;contacts.user_id&#39;)->orOn(...);<br/>   })<br/>   ->get();<br/></p>
Copier après la connexion
Conditions Where simples#

Utilisez la méthode Where pour ajouter des conditions Where à la requête. Cette fonction nécessite généralement trois paramètres : nom de colonne, opérateur (n'importe lequel. Tous les opérateurs pris en charge par la base de données peuvent être utilisés), valeurs des colonnes.
DB::table(&#39;users&#39;)  
->join(&#39;contacts&#39;, function ($join) {       
$join->on(&#39;users.id&#39;, &#39;=&#39;, &#39;contacts.user_id&#39;)            
->where(&#39;contacts.user_id&#39;, &#39;>&#39;, 5);
   })   ->get();
Copier après la connexion

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

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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 obtenir le code de retour lorsque l'envoi par e-mail échoue à Laravel? Comment obtenir le code de retour lorsque l'envoi par e-mail échoue à Laravel? Apr 01, 2025 pm 02:45 PM

Méthode pour obtenir le code de retour lorsque l'envoi par e-mail de Laravel échoue. Lorsque vous utilisez Laravel pour développer des applications, vous rencontrez souvent des situations où vous devez envoyer des codes de vérification. Et en réalité ...

La tâche de calendrier Laravel n'est pas exécutée: que dois-je faire si la tâche n'est pas en cours d'exécution après le calendrier: Exécuter la commande? La tâche de calendrier Laravel n'est pas exécutée: que dois-je faire si la tâche n'est pas en cours d'exécution après le calendrier: Exécuter la commande? Mar 31, 2025 pm 11:24 PM

Laravel Schedule Tâche d'exécution de dépannage non réactif Lorsque vous utilisez la planification des tâches de calendrier de Laravel, de nombreux développeurs rencontreront ce problème: Schedule: Exécuter ...

Dans Laravel, comment gérer la situation où les codes de vérification ne sont pas envoyés par e-mail? Dans Laravel, comment gérer la situation où les codes de vérification ne sont pas envoyés par e-mail? Mar 31, 2025 pm 11:48 PM

La méthode de traitement de l'échec de l'e-mail de Laravel à envoyer le code de vérification est d'utiliser Laravel ...

Comment implémenter la fonction de table personnalisée de clic pour ajouter des données dans l'administrateur DCAT? Comment implémenter la fonction de table personnalisée de clic pour ajouter des données dans l'administrateur DCAT? Apr 01, 2025 am 07:09 AM

Comment implémenter la fonction du tableau de Cliquez sur personnalisé pour ajouter des données dans DCATADMIN (Laravel-Admin) lors de l'utilisation de DCAT ...

Laravel - Serveur de vidage Laravel - Serveur de vidage Aug 27, 2024 am 10:51 AM

Laravel - Dump Server - Le serveur de dump Laravel est livré avec la version de Laravel 5.7. Les versions précédentes n'incluent aucun serveur de dump. Le serveur de vidage sera une dépendance de développement dans le fichier laravel/laravel composer.

Partage de connexion Laravel Redis: pourquoi la méthode de sélection affecte-t-elle d'autres connexions? Partage de connexion Laravel Redis: pourquoi la méthode de sélection affecte-t-elle d'autres connexions? Apr 01, 2025 am 07:45 AM

L'impact du partage des connexions redis dans Laravel Framework et sélectionnez Méthodes Lors de l'utilisation de Laravel Framework et Redis, les développeurs peuvent rencontrer un problème: grâce à la configuration ...

Laravel Multi-Lenant Extension Stancl / Tenancy: Comment personnaliser l'adresse hôte d'une connexion de base de données de locataire? Laravel Multi-Lenant Extension Stancl / Tenancy: Comment personnaliser l'adresse hôte d'une connexion de base de données de locataire? Apr 01, 2025 am 09:09 AM

Connexion de la base de données des locataires personnalisés dans le package d'extension multi-locataire Laravel Stancl / location Lors de la construction d'applications multi-locataires à l'aide du package d'extension multi-locataire Laravel Stancl / location, ...

Laravel – URL de l'action Laravel – URL de l'action Aug 27, 2024 am 10:51 AM

Laravel - URL d'action - Laravel 5.7 introduit une nouvelle fonctionnalité appelée « URL d'action appelable ». Cette fonctionnalité est similaire à celle de Laravel 5.6 qui accepte la méthode string in action. L'objectif principal de la nouvelle syntaxe introduite par Laravel 5.7 est de diriger

See all articles