Maison > cadre php > Laravel > Développement Laravel : Comment construire des requêtes complexes à l'aide de Laravel Query Builder ?

Développement Laravel : Comment construire des requêtes complexes à l'aide de Laravel Query Builder ?

PHPz
Libérer: 2023-06-14 08:15:34
original
1151 Les gens l'ont consulté

Laravel est un framework PHP open source avec une syntaxe élégante et concise et des fonctions puissantes. Parmi eux, Query Builder est un puissant générateur de requêtes de base de données dans Laravel qui peut nous aider à créer des instructions de requête complexes. Ci-dessous, nous détaillerons comment créer des requêtes complexes à l'aide de Laravel Query Builder.

  1. Connectez-vous à la base de données

Avant d'utiliser Laravel Query Builder, nous devons d'abord configurer et nous connecter à la base de données. Ouvrez le fichier de configuration config/database.php et spécifiez le type de base de données, le nom d'hôte, le nom de la base de données, le nom d'utilisateur et le mot de passe corrects. Comme le montre l'exemple ci-dessous, nous nous connectons à la base de données MySQL : config/database.php,指定正确的数据库类型、主机名、数据库名、用户名和密码。如下面的示例所示,我们连接的是MySQL数据库:

'connections' => [
    'mysql' => [
        'driver' => 'mysql',
        'host' => 'localhost',
        'database' => 'database_name',
        'username' => 'username',
        'password' => 'password',
Copier après la connexion
  1. 查询全部数据

使用Laravel Query Builder,查询所有数据非常简单。在控制器中,我们可以使用如下代码:

$data = DB::table('table_name')->get();
Copier après la connexion

这里,我们需要将table_name替换成需要查询的数据表名。get()方法将返回全部数据。

  1. 查询指定列数据

如果我们只需要查询指定列的数据,可以使用select()方法。例如:

$data = DB::table('table_name')->select('column_name1', 'column_name2')->get();
Copier après la connexion

这里,我们需要指定需要查询的列名,多个列名使用逗号隔开。

  1. 条件查询

Laravel Query Builder支持多种条件查询方式,包括等于、不等于、大于、小于、包含、不包含、in等。例如,我们可以通过以下代码查询年龄大于25岁的用户信息:

$data = DB::table('users')->where('age', '>', 25)->get();
Copier après la connexion

这里,我们使用了where()方法,可以实现等于、大于、小于等各种条件查询。同时,我们也可以使用orWhere()方法实现多个条件之间的or关系。

  1. 模糊查询

通过使用like操作符,我们可以在where()方法中实现模糊查询。例如,我们可以通过以下代码查询用户姓名中包含“张”的信息:

$data = DB::table('users')->where('name', 'like', '%张%')->get();
Copier après la connexion
  1. 排序查询

我们可以使用orderBy()方法实现对查询结果的排序。例如,我们可以通过以下代码实现按用户年龄升序排列的查询:

$data = DB::table('users')->orderBy('age', 'asc')->get();
Copier après la connexion

这里,我们需要指定需要排序的列名以及排序方式(升序或降序)。

  1. 聚合查询

Laravel Query Builder还支持各种聚合查询操作,如count、sum、max、min等。例如,我们可以通过以下代码实现对用户年龄求平均值的查询:

$data = DB::table('users')->avg('age');
Copier après la connexion
  1. 分组查询

通过使用groupBy()

$data = DB::table('users')->groupBy('age')->get();
Copier après la connexion
    Interroger toutes les données

    En utilisant Laravel Query Builder, interroger toutes les données est très simple. Dans le contrôleur, nous pouvons utiliser le code suivant :

    rrreee

    Ici, nous devons remplacer table_name par le nom de la table de données qui doit être interrogée. La méthode get() renverra toutes les données.

      🎜Interroger les données de la colonne spécifiée🎜🎜🎜Si nous avons uniquement besoin d'interroger les données de la colonne spécifiée, nous pouvons utiliser la méthode select(). Par exemple : 🎜rrreee🎜Ici, nous devons spécifier les noms de colonnes à interroger. Plusieurs noms de colonnes sont séparés par des virgules. 🎜
        🎜Requête conditionnelle🎜🎜🎜Laravel Query Builder prend en charge une variété de méthodes de requête conditionnelles, notamment égale à, non égale à, supérieure à, inférieure à, contient, ne contient pas, dans, etc. Par exemple, nous pouvons interroger les informations des utilisateurs de plus de 25 ans via le code suivant : 🎜rrreee🎜Ici, nous utilisons la méthode where() pour implémenter diverses requêtes conditionnelles telles que égal à, supérieur que, moins que, etc. Dans le même temps, nous pouvons également utiliser la méthode orWhere() pour implémenter la relation OU entre plusieurs conditions. 🎜
          🎜Requête floue🎜🎜🎜En utilisant l'opérateur like, nous pouvons implémenter une requête floue dans la méthode where(). Par exemple, nous pouvons interroger les informations contenant « Zhang » dans le nom de l'utilisateur via le code suivant : 🎜rrreee
            🎜Requête de tri🎜🎜🎜Nous pouvons utiliser le orderBy() méthode pour implémenter le tri des résultats de la requête. Par exemple, nous pouvons implémenter une requête de tri par âge de l'utilisateur par ordre croissant via le code suivant : 🎜rrreee🎜Ici, nous devons spécifier le nom de la colonne qui doit être triée et la méthode de tri (ordre croissant ou décroissant). 🎜
              🎜Requête d'agrégation🎜🎜🎜Laravel Query Builder prend également en charge diverses opérations de requête d'agrégation, telles que le nombre, la somme, le maximum, le minimum, etc. Par exemple, nous pouvons implémenter la requête d'âge moyen des utilisateurs via le code suivant : 🎜rrreee
                🎜Requête de groupe🎜🎜🎜En utilisant la méthode groupBy(), nous pouvons obtenir des résultats de requête de groupe. Par exemple, nous pouvons implémenter une requête regroupée par âge de l'utilisateur via le code suivant : 🎜rrreee🎜Ici, nous devons spécifier le nom de la colonne qui doit être regroupée. 🎜🎜Résumé🎜🎜Laravel Query Builder fournit une multitude d'opérations de requête qui peuvent nous aider à créer facilement diverses instructions de requête complexes. Cet article présente l'utilisation de base de Laravel Query Builder, y compris la connexion à la base de données, l'interrogation de toutes les données, l'interrogation des données de colonne spécifiées, la requête conditionnelle, la requête floue, la requête de tri, la requête d'agrégation et la requête de regroupement, etc. J'espère que ce contenu vous aidera à mieux utiliser Laravel Query Builder pour créer des requêtes complexes. 🎜

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!

Étiquettes associées:
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