Zum Inhalt springen
BirdAPI powered by SKYLITE.DESIGN
Kontakt
Zurück zum Blog

Meistere die Morph Maps: Schritt-für-Schritt-Anleitung

Meist gelesen

Fortgeschritten

  • Laravel 12
  • PHP 8.4

Mit der neuen Morph Maps-Funktion kannst du die nächste Stufe der Datenmodellierung in Laravel 11 erleben. Diese Anleitung zeigt dir, wie du Morph Maps effektiv...

PDF / Drucken
0 Bewertungen
1.792 0 Kommentare

Schritt 1: Installiere Laravel 11

Stelle sicher, dass du Laravel 11 installiert hast. Verwende den folgenden Befehl, um ein neues Laravel 11-Projekt zu erstellen
shell
composer create-project --prefer-dist laravel/laravel blog

Schritt 2: Einrichten der Datenbank

Konfiguriere deine .env-Datei, um die Datenbankverbindung einzurichten:
php
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=
Führe die Migrationen aus, um die Standardtabellen zu erstellen:
shell
php artisan migrate

Schritt 3: Erstellen der Modelle und Migrationen

Erstelle die Modelle und Migrationen für die polymorphe Beziehung. Angenommen, wir haben eine Post- und eine Video-Tabelle, die beide kommentiert werden können.
shell
php artisan make:model Post -m
php artisan make:model Video -m
php artisan make:model Comment -m
Füge in den Migrationen eine Indexierung hinzu, um die Abfragegeschwindigkeit zu verbessern. Beispielsweise:
php
$table->index('commentable_type');
$table->index('commentable_id');

Schritt 4: Definiere die Beziehungen in den Modellen

Füge die polymorphen Beziehungen in den entsprechenden Modellen hinzu. app/Models/Post.php
php
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\MorphMany;

class Post extends Model
{
    public function comments(): MorphMany
    {
        return $this->morphMany(Comment::class, 'commentable');
    }
}

Schritt 5: Konfigurieren der Morph Maps

Verwende die Morph Maps-Funktion, um benutzerdefinierte Morph-Typen zu definieren. Dies kann in einer Service-Provider-Datei, wie AppServiceProvider, erfolgen. app/Providers/AppServiceProvider.php
php
use Illuminate\Database\Eloquent\Relations\Relation;

public function boot()
{
    Relation::morphMap([
        'post' => 'App\Models\Post',
        'video' => 'App\Models\Video',
    ]);
}

Schritt 6: Daten einfügen und testen

Füge Daten in deine Post-, Video- und Comment-Tabellen ein, um die polymorphen Beziehungen zu testen. Beispiel-Daten hinzufügen:
php
use App\Models\Post;
use App\Models\Video;
use App\Models\Comment;

$post = Post::create(['title' => 'My First Post', 'body' => 'This is the body of my first post.']);
$video = Video::create(['title' => 'My First Video', 'url' => 'http://example.com/video']);

$comment1 = new Comment(['body' => 'Great post!']);
$comment2 = new Comment(['body' => 'Nice video!']);

$post->comments()->save($comment1);
$video->comments()->save($comment2);

Schritt 7: Überprüfe die Beziehung

Überprüfe die Beziehung
php
$post = Post::with('comments')->find(1);
$video = Video::with('comments')->find(1);

dd($post->comments, $video->comments);

Info

Mit dieser Schritt-für-Schritt-Anleitung und zusätzlichen Tipps kannst du die Morph Maps-Funktion in Laravel 11 erfolgreich einsetzen. Die Verwaltung polymorpher Beziehungen wird durch die Verwendung von benutzerdefinierten Morph-Typen erleichtert. Herzlichen Erfolg bei der Umsetzung!

Kommentare 0

Noch keine Kommentare. Seien Sie der Erste!

Kommentar schreiben

Ihre Meinung ist willkommen — Kommentare erscheinen nach kurzer Prüfung.

Kommentare werden vor Veröffentlichung moderiert.