Heim  >  Artikel  >  PHP-Framework  >  Laravel-Entwicklung: Wie erstellt man ein Modell mit Laravel Eloquent?

Laravel-Entwicklung: Wie erstellt man ein Modell mit Laravel Eloquent?

PHPz
PHPzOriginal
2023-06-14 10:14:171565Durchsuche

Laravel ist ein beliebtes PHP-Webframework, das aufgrund seiner Einfachheit und Benutzerfreundlichkeit beliebt ist. Das Laravel-Framework ist für seine Implementierung des hervorragenden Eloquent ORM bekannt, einem objektrelationalen Mini-Mapping, das die Verwendung von PHP zum Definieren von Datenbankmodellen unterstützt und eine einfache Datenbankinteraktion basierend auf diesen Modellen ermöglicht.

In diesem Artikel wird detailliert beschrieben, wie Sie mit Laravel Eloquent ein Modell erstellen, um schnell und zuverlässig mit der Datenbank zu interagieren.

Was ist Laravel Eloquent? Eloquent ORM ist ein in das Laravel-Framework integriertes ORM-System, das es Ihnen ermöglicht, PHP für die Interaktion mit der Datenbank zu verwenden, anstatt Daten direkt in MySQL-Anweisungen zu verarbeiten. Eloquent ordnet eine Reihe von Datentabellen Objekten zu, sodass Sie jedes Feld in der Datentabelle benennen und bearbeiten können, ohne SQL-Anweisungen direkt auszuführen.

Um Laravel Eloquent ORM zu verwenden, müssen Sie die Datenbankverbindung konfigurieren, bevor Sie das Datenbankmodell erstellen, wie unten gezeigt.

<?php

use IlluminateSupportFacadesDB;

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

Im Allgemeinen hat das Laravel-Framework die Datenbankverbindung bereits in der Datei .env konfiguriert. Bei der lokalen Entwicklung müssen Sie im Allgemeinen nur die Standardverbindung beibehalten.

So erstellen Sie Modelle mit Laravel Eloquent.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()

Laravel Eloquent ORM bietet eine einfache und leistungsstarke Möglichkeit, Modelle zu definieren, ohne komplexe SQL-Anweisungen schreiben zu müssen.

In Laravel ist jedes Eloquent-Modell einer Datenbanktabelle zugeordnet. Wir können den Befehl php artisan verwenden, um eine Datenbankmigrationsdatei zu erstellen, und dann den Befehl php artisan make:model verwenden, um ein Eloquent-Modell zu erstellen.

Das folgende Beispiel zeigt, wie man ein Modell erstellt: 🎜
foreach ($countries as $country) {
    foreach ($country->user as $user) {
        echo $user->name;
    }
}
🎜Dadurch wird eine Datei „Example.php“ im App-Verzeichnis erstellt. Das Folgende ist der spezifische Code: 🎜rrreee🎜Mit diesem einfachen Modell können wir mit der Definition und Modellierung von Daten beginnen In der Tabelle ist die spezifische Modellierung wie folgt: 🎜rrreee🎜Nachdem wir das Modell definiert haben, können wir die Abfrage über den Abfrage-Builder von Eloquent erstellen. Das Folgende ist ein Beispiel für eine Laravel Eloquent-Abfrage: 🎜rrreee🎜In dieser Abfrage Beispiel: :find(1) liest die Datensätze in der Standardtabelle example und gibt eine AppExample-Modellinstanz zurück. Auf dieser Modellinstanz können wir interne Funktionen oder Eigenschaften ausführen, zum Beispiel: 🎜rrreee🎜Der obige Code gibt den Wert der Titelspalte des Datensatzes mit der ID 1 in der Tabelle aus. 🎜🎜Fügen Sie eine Assoziation zum Datentabellenmodell hinzu🎜🎜In Laravel Eloquent ORM können wir die Beziehung zwischen Datenmodellen durch Hinzufügen von Assoziationsbeziehungen ausdrücken, z. B. die Assoziation zwischen den folgenden beiden Modellen: 🎜rrreee🎜In diesem Modell kann ein Land haben mehrere Benutzer, daher ist das Country-Modell hasMany mit dem Benutzermodell verknüpft; andererseits kann ein Benutzer nur aus einem Land kommen, daher ist das Modell User code>Zugehörigkeit zum Ländermodell mithilfe der Methode belongsTo. 🎜🎜Durch die Definition dieser Beziehungen können wir bei Abfragen mithilfe der Methode with leicht das entsprechende Assoziationsmodell erhalten, zum Beispiel: 🎜rrreee🎜In der obigen Abfrage lautet Country::with('user ')Gibt den Benutzerdatensatz der durch Country::user() definierten Zuordnung zurück. Auf diese Sammlungen kann in der zurückgegebenen Sammlung zugegriffen werden, zum Beispiel: 🎜rrreee🎜 Zusammenfassung🎜🎜 Laravel Eloquent ORM ist eine der besten Funktionen des Laravel-Frameworks, das die Komplexität der Interaktion mit der Datenbank für Entwickler vereinfacht. Durch das Einrichten einer Datenbankverbindung, das Erstellen von Modellen und das Definieren von Beziehungen können wir problemlos mit der Datenbank interagieren und Daten aus ihr abrufen. Denken Sie bei der Verwendung von Laravel daran, das Laravel Eloquent ORM zu verwenden, um Datenbankmodelle effizienter und schlanker zu erstellen. 🎜

Das obige ist der detaillierte Inhalt vonLaravel-Entwicklung: Wie erstellt man ein Modell mit Laravel Eloquent?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn