


Laravel-Entwicklung: Wie erstellt man ein Datenbankmodell mit Laravel Eloquent?
Laravel-Entwicklung: Wie erstellt man ein Datenbankmodell mit Laravel Eloquent?
Laravel ist ein beliebtes PHP-Framework, das ein leistungsstarkes und benutzerfreundliches Tool für den Datenbankbetrieb bereitstellt – Laravel Eloquent. In der Vergangenheit erforderte die Verwendung von PHP zur Durchführung von Datenbankoperationen zwangsläufig das Schreiben einer großen Anzahl langwieriger SQL-Anweisungen und umständlicher Codes. Mit Laravel Eloquent können jedoch problemlos Datenbankmodelle erstellt und eine schnelle Entwicklung und Wartung erreicht werden. In diesem Artikel wird erläutert, wie Sie mit Laravel Eloquent ein Datenbankmodell erstellen.
1. Datenbanktabellen erstellen
Zuerst müssen Sie Datenbanktabellen durch Datenbankmigration (Migration) erstellen. In Laravel kann dieser Vorgang mit dem Befehlszeilentool artisan durchgeführt werden. Geben Sie ein:
php artisan make:migration create_users_table
Dieser Befehl erstellt eine Migrationsdatei im Verzeichnis app/database/migrations. Der Dateiname besteht aus dem aktuellen Datum und der aktuellen Uhrzeit sowie dem Namen der Migration, z. B. 2019_08_17_000000_create_users_table.php. Ändern Sie die Migrationsdatei und schreiben Sie die entsprechende Datenbankstruktur.
Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); });
Der obige Code erstellt eine Tabelle mit dem Namen „Benutzer“, die 8 Felder enthält: ID, Name, E-Mail, email_verified_at, Passwort, erinnere_token, erstellt_at und aktualisiert_at. Führen Sie als Nächstes die Migrationsdatei aus, um die Datenbanktabellen zu erstellen.
php artisan migrate
2. Ein Modell erstellen
Das Erstellen eines Modells (Modells) in der Anwendung ist der erste Schritt bei der Verwendung von Laravel Eloquent. Sie können ein Modell mit dem Handwerker-Tool erstellen:
php artisan make:model User
Der obige Befehl erstellt ein Modell mit dem Namen „Benutzer“ im App-Verzeichnis, das der Benutzertabelle in der Datenbank entspricht. Standardmäßig geht Laravel Eloquent davon aus, dass der Datenbanktabellenname die Pluralform des Modellnamens ist. Wenn Sie einem anderen Tabellennamen entsprechen oder eine andere Datenbankverbindung verwenden müssen, können Sie die Attribute $table und $connection im Modell definieren .
Die Definition des Modells lautet wie folgt:
namespace App; use IlluminateDatabaseEloquentModel; class User extends Model { // }
3. Modellattribute
Im Modell hat Laravel Eloquent einige Standardattribute und -methoden definiert, darunter:
- $fillable-Attribut: definiert Attribute, die stapelweise zugewiesen werden können Injektionsattacken vorzubeugen. Kann aus einer Erstellungs-/Aktualisierungsanforderung mit den Methoden create() und update() ausgefüllt werden.
protected $fillable = [ 'name', 'email', 'password', ];
- $hidden attribute: Definiert Attribute, die im Array ausgeblendet werden sollen. Bei der Serialisierung werden diese Eigenschaften ausgeblendet.
protected $hidden = [ 'password', 'remember_token', ];
- $casts-Attribut: Definieren Sie Eigenschaften, die in native Typen (Ganzzahl, Boolescher Wert, Gleitkomma usw.) oder benutzerdefinierte Objekte konvertiert werden sollen.
protected $casts = [ 'email_verified_at' => 'datetime', ];
4. Modellmethoden
Laravel Eloquent bietet einige Methoden zur Durchführung von Datenoperationen im Modell. Hier sind einige der gebräuchlichsten Modellmethoden:
- where(): wird zum Hinzufügen von WHERE-Bedingungen verwendet.
$user = User::where('name', 'John')->first();
- find(): wird verwendet, um Datensätze anhand der Primärschlüssel-ID des Modells zu finden.
$user_id = 1; $user = User::find($user_id);
- first(): Gibt den ersten gefundenen Datensatz zurück.
$user = User::where('name', 'John')->first();
- get(): Gibt alle gefundenen Datensätze zurück.
$users = User::all();
- create(): wird verwendet, um einen neuen Datensatz zu erstellen.
User::create(['name' => 'Taylor', 'email' => 'taylor@example.com', 'password' => 'password']);
- update(): wird zum Aktualisieren von Datensätzen verwendet.
$user = User::find($user_id); $user->name = 'Updated Name'; $user->save();
- delete(): wird zum Löschen von Datensätzen verwendet.
$user = User::find($user_id); $user->delete();
Die oben genannten sind einige grundlegende Laravel Eloquent-Modellmethoden, mit denen sich schnell Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgänge in der Datenbank implementieren lassen.
5. Assoziationsbeziehungen
Laravel Eloquent bietet auch eine praktische Möglichkeit, verschiedene Beziehungen zu definieren: Eins zu Eins, Eins zu Viele, Viele zu Viele) und polymorphe Beziehungen. Hier einige Beispiele:
- Eins zu Eins (Eins zu Eins)
Bei einer Eins-zu-eins-Zuordnung ist jede Modellinstanz nur mit einer anderen verwandten Modellinstanz verknüpft. Beispielsweise kann jede Zeile in der Benutzertabelle mit einer Zeile in der Telefontabelle verknüpft sein, in der die Telefonnummer des Benutzers gespeichert ist. Definieren Sie im Benutzermodell eine phone()-Methode, um die Eins-zu-eins-Beziehung zwischen dem Modell und dem Telefonmodell darzustellen.
class User extends Model { public function phone() { return $this->hasOne('AppPhone'); } }
Definieren Sie im Telefonmodell die entgegengesetzte hasOne()-Methode.
class Phone extends Model { public function user() { return $this->belongsTo('AppUser'); } }
- One to Many
In einer Eins-zu-viele-Beziehung ist eine Modellinstanz mit einer anderen Modellinstanz verknüpft, und eine andere Instanz kann mit mehreren Modellinstanzen verknüpft sein. Beispielsweise kann auf einer Forum-Site jede Vorlage mit vielen Kommentaren verknüpft sein. Definieren Sie im Thread-Modell eine comments()-Methode, um die Eins-zu-viele-Beziehung zwischen dem Modell und dem Comment-Modell darzustellen.
class Thread extends Model { public function comments() { return $this->hasMany('AppComment'); } }
Definieren Sie im Kommentarmodell die entgegengesetzte gehörtTo()-Methode.
class Comment extends Model { public function thread() { return $this->belongsTo('AppThread'); } }
- Many to Many
In einer Viele-zu-Viele-Beziehung ist die Modellinstanz mit vielen anderen Modellinstanzen verknüpft, und jede verwandte Modellinstanz kann auch mit mehreren Modellinstanzen verknüpft sein. Beispielsweise kann in einem Blog jeder Artikel mehrere Kategorie-Tags haben, und jedes Tag kann auch mehrere Artikel haben. Definieren Sie im Post-Modell eine tags()-Methode, um die Viele-zu-Viele-Beziehung zwischen dem Modell und dem Tag-Modell darzustellen.
class Post extends Model { public function tags() { return $this->belongsToMany('AppTag'); } }
Definieren Sie im Tag-Modell die entgegengesetzte gehörtToMany()-Methode.
class Tag extends Model { public function posts() { return $this->belongsToMany('AppPost'); } }
- 多态关联(Polymorphic Relations)
多态关联允许模型通过多个中介模型与其他模型进行多对多关联。例如,在应用中可以使用comments模型对其他类型的模型进行评论。在Comment模型中,定义一个commentable()方法,表示该模型与所有支持评论的模型之间的多态关系。
class Comment extends Model { public function commentable() { return $this->morphTo(); } }
在支持评论的模型中,例如Post和Video模型中,定义morphMany()方法。
class Post extends Model { public function comments() { return $this->morphMany('AppComment', 'commentable'); } } class Video extends Model { public function comments() { return $this->morphMany('AppComment', 'commentable'); } }
以上是Laravel Eloquent提供的关联关系,可以让开发者在数据库模型中轻松处理复杂的关系结构。
七、总结
本文介绍了使用Laravel Eloquent构建数据库模型的基础知识,包括创建数据库表、创建模型、模型属性和方法,以及关联关系。Laravel Eloquent提供了一种简单和直观的方式来操作数据库,使得开发者能够快速构建应用程序,并为复杂的数据库结构提供了更干净、易于维护的解决方案。希望这篇文章对你的学习和开发有所帮助。
Das obige ist der detaillierte Inhalt vonLaravel-Entwicklung: Wie erstellt man ein Datenbankmodell mit Laravel Eloquent?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen





Methode zum Abholen des Rücksendecode, wenn das Senden von Laravel -E -Mails fehlschlägt. Wenn Sie Laravel zur Entwicklung von Anwendungen verwenden, stellen Sie häufig Situationen auf, in denen Sie Überprüfungscodes senden müssen. Und in Wirklichkeit ...

Laravel -Zeitplan -Aufgabe Ausführen nicht reagierende Fehlerbehebung Bei Verwendung der Zeitplanung von Laravel -Zeitplänen werden viele Entwickler auf dieses Problem stoßen: Zeitplan: Run ...

Die Methode zum Umgang mit Laravels E -Mail -Versagen zum Senden von Verifizierungscode besteht darin, Laravel zu verwenden ...

So implementieren Sie die Tabellenfunktion von benutzerdefiniertem Klicken, um Daten in dcatadmin (laravel-admin) hinzuzufügen, wenn Sie DCAT verwenden ...

Laravel – Dump-Server – Der Laravel-Dump-Server wird mit der Version von Laravel 5.7 geliefert. Die Vorgängerversionen enthalten keinen Dump-Server. Der Dump-Server wird eine Entwicklungsabhängigkeit in der Laravel-/Laravel-Composer-Datei sein.

Die Auswirkungen des Austauschs von Redis -Verbindungen im Laravel -Framework und der Auswahl von Methoden bei Verwendung von Laravel -Framework und Redis können Entwickler auf ein Problem stoßen: Durch Konfiguration ...

Benutzerdefinierte Mieterdatenbankverbindung in Laravel Multi-Tenant-Erweiterungspaket Stanz/Mietverhältnis beim Erstellen von Multi-Mandanten-Anwendungen mit Laravel Multi-Tenant-Erweiterungspaket Stanz/Mietverhältnis, ...

Laravel – Aktions-URL – Laravel 5.7 führt eine neue Funktion namens „Aufrufbare Aktions-URL“ ein. Diese Funktion ähnelt der in Laravel 5.6, die String-in-Action-Methoden akzeptiert. Der Hauptzweck der neuen Syntax, die Laravel 5.7 eingeführt hat, besteht darin, direktl
