Eloquent-Modelle und Migrationen
Generieren Sie Modelle und Datenbankmigrationen mit Artisan-Befehlen.
Eloquent-Modelle und Migrationen ist eine kostenlose PHP Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des PHP Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.
Was ist Eloquent?
Eloquent ist Laravels ActiveRecord-ORM. Jede Datenbanktabelle verfügt über eine entsprechende Model-Klasse, die eine Zeile repräsentiert und Abfragemethoden bereitstellt.
Ein Model generieren
Verwenden Sie Artisan, um ein Model zu erstellen. Fügen Sie -m hinzu, um zusätzlich eine Migrationsdatei zu generieren.
$ php artisan make:model Post -m
# Creates:
# app/Models/Post.php
# database/migrations/xxxx_create_posts_table.phpDie Model-Klasse
Ein minimales Eloquent-Model muss lediglich Model erweitern. Eloquent leitet den Tabellennamen aus dem Klassennamen ab (Plural in snake_case).
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
protected $fillable = ["title", "body", "user_id"];
}Migrationsdatei
Die Migration definiert das Tabellenschema. Führen Sie php artisan migrate aus, um es anzuwenden.
<?php
public function up(): void
{
Schema::create("posts", function (Blueprint $table) {
$table->id();
$table->string("title");
$table->text("body");
$table->foreignId("user_id")->constrained()->cascadeOnDelete();
$table->timestamps();
});
}Migrationen ausführen
Wenden Sie ausstehende Migrationen auf die Datenbank an.
$ php artisan migrate
# Rollback:
$ php artisan migrate:rollback
# Fresh (drop all and re-migrate):
$ php artisan migrate:fresh$fillable vs. $guarded
$fillable legt per Whitelist fest, welche Spalten für Mass Assignment verwendet werden dürfen. $guarded legt Spalten per Blacklist fest. Setzen Sie $guarded = [] in der Produktion niemals ohne sorgfältige Prüfung.
<?php
// Whitelist approach (recommended):
protected $fillable = ["title", "body"];
// Blacklist approach:
protected $guarded = ["id", "created_at"];Casts
Die Eigenschaft $casts konvertiert Spaltenwerte automatisch in PHP-Typen.
<?php
protected $casts = [
"is_published" => "boolean",
"metadata" => "array", // JSON column
"published_at" => "datetime",
];Hidden und Visible
Die Eigenschaft $hidden schließt Spalten aus der JSON-/Array-Serialisierung aus – nützlich für Passwörter und Tokens.
<?php
protected $hidden = ["password", "remember_token"];Benutzerdefinierter Tabellenname
Überschreiben Sie den Standardtabellennamen mit der Eigenschaft $table.
<?php
protected $table = "blog_posts"; // instead of "posts"Soft Deletes
Fügen Sie das Trait SoftDeletes und eine Spalte deleted_at hinzu. Datensätze werden nicht tatsächlich gelöscht – sie werden mit einem Zeitstempel markiert und aus normalen Abfragen ausgeschlossen.
<?php
use Illuminate\Database\Eloquent\SoftDeletes;
class Post extends Model {
use SoftDeletes;
}Zeitstempel
Standardmäßig verwaltet Eloquent die Spalten created_at und updated_at. Setzen Sie $timestamps = false, um dies zu deaktivieren.
Zusammenfassung
Eloquent-Modelle werden Datenbanktabellen zugeordnet. Verwenden Sie Artisan, um Modelle und Migrationen gemeinsam zu generieren. Definieren Sie $fillable für die Sicherheit bei Mass Assignment. Verwenden Sie $casts für die automatische Typkonvertierung.
Schnelltest
Welches Artisan-Flag generiert zusammen mit einem Model eine Migration?
Häufig gestellte Fragen
Ist die Lektion „Eloquent-Modelle und Migrationen“ kostenlos?
Ja — der vollständige Text von „Eloquent-Modelle und Migrationen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des PHP Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Eloquent-Modelle und Migrationen“?
Generieren Sie Modelle und Datenbankmigrationen mit Artisan-Befehlen. Du übst PHP Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um PHP Academy zu starten?
Keine Vorkenntnisse erforderlich. PHP Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Eloquent-Modelle und Migrationen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser PHP Academy-Lektion Code schreiben und ausführen?
Ja. Jede PHP Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Eloquent-Modelle und Migrationen
- CRUD mit Eloquent
- Eloquent-Beziehungen
- Eager Loading und Query Scopes