Maison  >  Article  >  cadre php  >  Développement Laravel : Comment construire un modèle avec Laravel Eloquent ?

Développement Laravel : Comment construire un modèle avec Laravel Eloquent ?

PHPz
PHPzoriginal
2023-06-14 10:14:171615parcourir

Laravel est un framework Web PHP populaire en raison de sa simplicité et de sa facilité d'utilisation. Le framework Laravel est connu pour son implémentation de l'excellent Eloquent ORM, qui est un mini mappage objet-relationnel qui prend en charge l'utilisation de PHP pour définir des modèles de base de données et fournit une interaction facile avec la base de données basée sur ces modèles.

Cet article présentera en détail comment utiliser Laravel Eloquent pour créer un modèle permettant d'interagir avec la base de données de manière rapide et fiable.

Qu'est-ce que Laravel Eloquent

Eloquent ORM est un système ORM intégré au framework Laravel, qui vous permet d'utiliser PHP pour interagir avec la base de données au lieu d'exploiter directement les données dans les instructions MySQL. Eloquent mappe une série de tables de données sur des objets, afin que vous puissiez nommer et manipuler chaque champ de la table de données sans exécuter directement d'instructions SQL.

Pour utiliser Laravel Eloquent ORM, vous devez configurer la connexion à la base de données avant de créer le modèle de base de données comme indiqué ci-dessous.

<?php

use IlluminateSupportFacadesDB;

$connection = DB::connection();
$name = $connection->getDatabaseName();

De manière générale, le framework Laravel a déjà configuré la connexion à la base de données dans le fichier .env. En développement local, il suffit généralement de conserver la connexion par défaut. .env文件中配置好了数据库连接,在本地开发中一般只需保持默认连接即可。

如何使用 Laravel Eloquent 构建模型

Laravel Eloquent ORM提供了一种简单而强大的方式来定义模型,而不用写复杂的SQL语句。

在Laravel中,每个Eloquent模型都关联一个数据库表。我们可以使用php artisan命令创建数据库迁移文件后,使用php artisan make:model命令创建一个Eloquent模型。

下面的示例展示了如何创建一个模型:

php artisan make:model Example

这将在app目录下创建一个Example.php文件,以下是具体的代码:

<?php

namespace App;

use IlluminateDatabaseEloquentModel;

class Example extends Model
{
    //
}

使用这个简单的模型,我们可以开始定义并建模数据表,具体的建模见下:

Schema::create(`example`, function ($table) {
    $table->increments(`id`);
    $table->string(`title`);
    $table->string(`body`);
    $table->timestamps();
});

在定义完模型后,我们可以通过Eloquent的查询构建器构建查询,下面是一个Laravel Eloquent查询的例子:

$example = Example::find(1);

在该查询中,Example::find(1)读取默认表example中的记录,并返回一个AppExample模型实例。在此模型实例上我们可以执行内部函数或属性,例如:

$title = $example->title;

上述代码会输出表中id为1的记录的title列的值。

为数据表模型添加关联

在Laravel Eloquent ORM中,我们可以通过添加关联关系来表达数据模型之间的关系,例如下述两个模型之间的关联:

class Country extends Model
{
    public function user()
    {
        return $this->hasMany(User::class);
    }
}

class User extends Model
{
    public function country()
    {
        return $this->belongsTo(Country::class);
    }
}

在这个模型中,一个国家可以有多个用户,因此Country模型hasMany关联用户模型;另一方面,一个用户只能来自一个国家,因此模型User使用belongsTo方法从属于国家模型。

通过定义这些关系,我们可以在查询时使用with方法轻松地获取相应的关联模型,例如:

$countries = Country::with('user')->get();

在上述查询中,Country::with('user')返回通过Country::user()

Comment créer des modèles à l'aide de Laravel Eloquent

Laravel Eloquent ORM fournit un moyen simple et puissant de définir des modèles sans écrire d'instructions SQL complexes.

Dans Laravel, chaque modèle Eloquent est associé à une table de base de données. Nous pouvons utiliser la commande php artisan pour créer un fichier de migration de base de données, puis utiliser la commande php artisan make:model pour créer un modèle Eloquent. 🎜🎜L'exemple suivant montre comment créer un modèle : 🎜
foreach ($countries as $country) {
    foreach ($country->user as $user) {
        echo $user->name;
    }
}
🎜Cela créera un fichier Exemple.php dans le répertoire de l'application, voici le code spécifique : 🎜rrreee🎜En utilisant ce modèle simple, nous pouvons commencer à définir et modéliser des données table, la modélisation spécifique est la suivante : 🎜rrreee🎜Après avoir défini le modèle, nous pouvons construire la requête via le générateur de requêtes d'Eloquent. Voici un exemple de requête Laravel Eloquent : 🎜rrreee🎜Dans cette requête, Exemple : :find(1) lit les enregistrements dans la table par défaut example et renvoie une instance de modèle AppExample. Sur cette instance de modèle, nous pouvons exécuter des fonctions ou des propriétés internes, par exemple : 🎜rrreee🎜Le code ci-dessus affichera la valeur de la colonne de titre de l'enregistrement avec l'identifiant 1 dans le tableau. 🎜🎜Ajouter une association au modèle de table de données🎜🎜Dans Laravel Eloquent ORM, nous pouvons exprimer la relation entre les modèles de données en ajoutant des relations d'association, telles que l'association entre les deux modèles suivants : 🎜rrreee🎜Dans ce modèle, un pays peut avoir plusieurs utilisateurs, donc le modèle Country hasMany est associé au modèle utilisateur par contre, un utilisateur ne peut provenir que d'un seul pays, donc le modèle User ; code>Appartenir au modèle pays en utilisant la méthode belongsTo. 🎜🎜En définissant ces relations, nous pouvons facilement obtenir le modèle d'association correspondant en utilisant la méthode with lors d'une requête, par exemple : 🎜rrreee🎜Dans la requête ci-dessus, Country::with('user ')Renvoie l'enregistrement utilisateur de l'association définie par Country::user(). Ces collections sont accessibles dans la collection renvoyée comme : 🎜rrreee🎜 Résumé🎜🎜 Laravel Eloquent ORM est l'une des meilleures fonctionnalités du framework Laravel qui simplifie la complexité de l'interaction avec les bases de données pour les développeurs. En configurant une connexion à une base de données, en créant des modèles et en définissant des relations, nous pouvons facilement interagir avec et récupérer des données de la base de données. Lorsque vous utilisez Laravel, n'oubliez pas d'utiliser l'ORM Laravel Eloquent pour créer des modèles de base de données de manière plus efficace et rationalisée. 🎜

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:
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