Maison > cadre php > Laravel > le corps du texte

Comment juger les résultats d'une requête dans Laravel

PHPz
Libérer: 2023-04-23 09:43:18
original
1090 Les gens l'ont consulté

Dans les applications Laravel, nous devons généralement interroger la base de données pour obtenir les données requises. Lors de ces requêtes, nous devons parfois écrire des instructions conditionnelles dans le code pour vérifier les résultats de la requête et prendre les actions appropriées en fonction des résultats. Par conséquent, cet article expliquera comment juger les résultats d'une requête et écrire des instructions conditionnelles dans Laravel.

Tout d'abord, nous devons comprendre les types de résultats renvoyés par les requêtes Laravel. Les requêtes dans Laravel renvoient différents types de résultats en fonction de la méthode que vous utilisez lors de l'exécution de la requête. Voici quelques-unes des méthodes de requête les plus couramment utilisées et leurs types de valeurs de retour :

  1. get() - renvoie une collection de résultats de requête (Collection)
  2. first() - renvoie une seule instance de modèle (Model)
  3. find () - basé sur l'ID Trouver une seule instance de modèle (Model)
  4. pluck() - Renvoie un tableau à une seule colonne (Array)
  5. count() - Renvoie une valeur entière (Int)
  6. exists() - Renvoie un booléen value (Boolean)

Connect Ensuite, nous apprendrons comment déterminer ces types de résultats et écrire des instructions conditionnelles.

  1. Collection

Collection est l'un des types de résultats les plus couramment utilisés dans Laravel. Lorsque nous interrogeons à l’aide de la méthode get(), une instance Collection sera renvoyée.

Pour déterminer si la collection est vide, utilisez la méthode isEmpty(). Par exemple :

$users = DB::table('users')->get();

if ($users->isEmpty()) {
    // Collection为空的情况下执行的代码
} else {
    // Collection不为空的情况下执行的代码
}
Copier après la connexion

Si vous devez exécuter du code uniquement lorsqu'il n'y a qu'un seul enregistrement dans la collection, utilisez la méthode isNotEmpty(). Par exemple :

$users = DB::table('users')->get();

if ($users->isNotEmpty()) {
    // Collection中有记录的情况下执行的代码
} else {
     // Collection为空的情况下执行的代码
}
Copier après la connexion

Si vous avez besoin de rechercher un enregistrement spécifique dans la collection, utilisez la méthode contain(). Par exemple :

$users = DB::table('users')->get();

if ($users->contains('name', 'John')) {
    // Collection中包含记录的情况下执行的代码
} else {
    // Collection中不包含记录的情况下执行的代码
}
Copier après la connexion
  1. Model

Lorsque nous utilisons la méthode first() pour interroger, une instance de Model sera renvoyée. Dans ce cas, nous pouvons utiliser une instruction if pour déterminer si le résultat est vide. Par exemple :

$user = DB::table('users')->where('email', 'john@example.com')->first();

if ($user) {
    // Model实例存在的情况下执行的代码
} else {
    // Model实例不存在的情况下执行的代码
}
Copier après la connexion

De même, si vous utilisez la méthode find() pour rechercher un enregistrement, vous pouvez utiliser une instruction if pour déterminer si le résultat est vide. Par exemple :

$user = DB::table('users')->find(1);

if ($user) {
    // Model实例存在的情况下执行的代码
} else {
    // Model实例不存在的情况下执行的代码
}
Copier après la connexion
  1. Array

Lorsque vous utilisez la méthode pluck() pour obtenir une seule colonne dans une requête, un tableau sera renvoyé. Dans ce cas, nous pouvons utiliser la fonction empty() pour vérifier si le tableau est vide. Par exemple :

$emails = DB::table('users')->pluck('email');

if (empty($emails)) {
    // 数组为空的情况下执行的代码
} else {
    // 数组不为空的情况下执行的代码
}
Copier après la connexion
  1. Int

Lorsque vous utilisez la méthode count() pour obtenir le nombre de résultats de requête, une valeur entière sera renvoyée. Dans ce cas, nous pouvons utiliser l'instruction if pour vérifier si le résultat est 0. Par exemple :

$count = DB::table('users')->count();

if ($count == 0) {
    // 记录数为0的情况下执行的代码
} else {
    // 记录数不为0的情况下执行的代码
}
Copier après la connexion
  1. Boolean

Lorsque nous utilisons la méthode exist() pour vérifier si un enregistrement existe, une valeur booléenne sera renvoyée. Par exemple :

if (DB::table('users')->where('name', 'John')->exists()) {
    // 存在记录的情况下执行的代码
} else {
    // 不存在记录的情况下执行的代码
}
Copier après la connexion

Résumé

Dans les applications Laravel, nous devons généralement écrire des instructions conditionnelles basées sur différents résultats de requête. Cet article explique comment évaluer les résultats de requête des types Collection, Model, Array, Int et Boolean, et fournit un exemple de code correspondant. Grâce à ces exemples, nous pouvons utiliser les méthodes de requête Laravel de manière plus flexible et gérer diverses situations.

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal