{"id":68801,"date":"2024-02-08T19:26:47","date_gmt":"2024-02-08T18:26:47","guid":{"rendered":"https:\/\/kinsta.com\/de\/?p=68801&#038;preview=true&#038;preview_id=68801"},"modified":"2024-04-22T19:57:42","modified_gmt":"2024-04-22T18:57:42","slug":"laravel-eloquent","status":"publish","type":"post","link":"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/","title":{"rendered":"Sechs Dinge, die du wissen musst, um Laravel Eloquent zu beherrschen"},"content":{"rendered":"<p><a href=\"https:\/\/kinsta.com\/de\/thema\/laravel\/\">Laravel<\/a> ist ein quelloffenes und einfach zu bedienendes <a href=\"https:\/\/kinsta.com\/de\/blog\/php-frameworks\/\">PHP-Framework<\/a>. Eine seiner leistungsst\u00e4rksten Funktionen ist Eloquent, ein objektrelationaler Mapper (ORM), der die Bearbeitung von Datenbankeintr\u00e4gen vereinfacht.<\/p>\n<p>Eloquent beschleunigt das Erstellen, Lesen, Aktualisieren und L\u00f6schen von Datens\u00e4tzen in einer Datenbank aus einer Anwendung heraus. Mit Eloquent erstellst du Modelle, die Datenbanktabellen widerspiegeln, und verwendest diese Modelle zur Erstellung deiner Abfragen.<\/p>\n<p>Dieser Artikel befasst sich mit sechs Elementen der wichtigsten Funktionen von Eloquent: Abfragebereiche, Beziehungen, Mutatoren und Accessoren, Sammlungen, Modelll\u00f6schung und Factories. Anhand von praktischen Beispielen wird erl\u00e4utert, was die einzelnen Funktionen bewirken. Wir hoffen, dass du diese Beispiele nutzen kannst, um <a href=\"https:\/\/laravel.com\/docs\/10.x\/eloquent\" target=\"_blank\" rel=\"noopener noreferrer\">Laravel Eloquent<\/a> noch besser zu beherrschen.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>1. Eloquent Abfragebereiche<\/h2>\n<p>Wenn du eine Anwendung erstellst, kommst du manchmal in Situationen, in denen du Bedingungen mehr als einmal verwendest. Wenn du den Code jedes Mal neu schreibst, kann das die Fehlerwahrscheinlichkeit erh\u00f6hen und deinen Code unordentlich machen. Laravel l\u00f6st dieses Problem, indem es solche Bedingungen in wiederverwendbare Anweisungen, sogenannte Scopes, verpackt.<\/p>\n<p>Abfragebereiche sind Methoden, um einem Modell Datenbanklogik hinzuzuf\u00fcgen und Abfragelogik wiederzuverwenden.<\/p>\n<p>Im Folgenden findest du ein Beispiel f\u00fcr einen Abfragebereich. Angenommen, du m\u00f6chtest eine Softwareentwicklungsplattform f\u00fcr dein Team erstellen, die abgeschlossene und laufende Funktionen verfolgt. Mit dieser Bedingung kannst du nur die laufenden Features abfragen:<\/p>\n<pre><code class=\"language-php\">$onGoing = Project::where('ongoing', 1)-&gt;get();<\/code><\/pre>\n<p>M\u00f6glicherweise brauchst du diese Bedingung auch auf anderen Anwendungsseiten, z. B. auf der Statistikseite. Mit Abfragebereichen kann eine Seite die obige Bedingung wiederverwenden, was deine Abfrage vereinfacht und deinen Code sauberer macht.<\/p>\n<p>Hier siehst du, wie du einen Abfragebereich f\u00fcr dieses Szenario verwenden kannst:<\/p>\n<pre><code class=\"language-php\">class Features extends Model\n{\n    public function scopeOngoing($query)\n    {\n        return $query-&gt;where('ongoing', 0);\n    }\n}<\/code><\/pre>\n<p>Verwende dann den folgenden Code, um den Bereich auszuf\u00fchren:<\/p>\n<pre><code class=\"language-php\">$onGoing = Feature::ongoing()-&gt;get();<\/code><\/pre>\n<p>Es gibt zwei Arten von Geltungsbereichen: globale und lokale.<\/p>\n<h3>Globale Bereiche<\/h3>\n<p>Globale Bereiche erm\u00f6glichen das Hinzuf\u00fcgen von Bedingungen zu allen Abfragen innerhalb eines Modells. Du kannst z. B. eine Bedingung hinzuf\u00fcgen, um Features nach dem Namen des Teamleiters in allen Abfragen innerhalb deines Modells zu filtern.<\/p>\n<h3>Lokale Geltungsbereiche<\/h3>\n<p>Lokale Bereiche erm\u00f6glichen die Definition gemeinsamer Beschr\u00e4nkungen f\u00fcr die Wiederverwendbarkeit. Du m\u00f6chtest zum Beispiel, dass die Anwendung die Merkmale zur\u00fcckgibt, die Bugs haben. Dein Code k\u00f6nnte einen lokalen Bereich wie diesen implementieren:<\/p>\n<pre><code class=\"language-php\">namespace AppModels;\nuse IlluminateDatabaseEloquentModel;\n\nclass User extends Model\n{\n    public function scopeBugged($query)\n    {\n        return $query-&gt;where('bugged', '&gt;', 1);\n    }\n}<\/code><\/pre>\n<p>Der obige Code gibt alle Merkmale zur\u00fcck, die nicht behobene Fehler haben.<\/p>\n<h2>2. Eloquent-Beziehungen<\/h2>\n<p>Beziehungen in Eloquent erm\u00f6glichen es dir, verschiedene Tabellen einfach miteinander zu verkn\u00fcpfen. Zum Beispiel kann ein Produkt auf einer E-Commerce-Website mit Bestand, Preis, Ansichten und Bewertungen aufgef\u00fchrt sein. Mit Eloquent kannst du diese Beziehungen einfach verwalten, auch wenn sich die Datens\u00e4tze in verschiedenen Tabellen befinden.<\/p>\n<p>Du kannst Beziehungen als Methoden f\u00fcr Modellklassen definieren, genau wie bei einem Eloquent-Modell. H\u00e4ufig verwendete Eloquent-Beziehungen sind eins-zu-eins, invers und polymorph.<\/p>\n<h3>Eins-zu-eins<\/h3>\n<p>Hier ist ein Beispiel f\u00fcr eine einfache Eins-zu-Eins-Beziehung, die ein Produktmodell mit einem Inventar verkn\u00fcpft.<\/p>\n<pre><code class=\"language-php\">public function Inventory()\n{\n    return $this-&gt;hasOne('AppInventory');\n}<\/code><\/pre>\n<p>Im obigen Code ruft die Methode <code>Inventory()<\/code> die Methode <code>hasOne()<\/code> f\u00fcr das Produktmodell auf. Diese pr\u00fcft, ob das Produkt derzeit verf\u00fcgbar ist.<\/p>\n<h3>Umgekehrt<\/h3>\n<p>Mit Eloquent kannst du auch eine umgekehrte Beziehung erstellen. Zum Beispiel, wenn du Produkte auf der Grundlage der Anzahl ihrer Ansichten abrufen m\u00f6chtest. Inverse Beziehungen k\u00f6nnen dir die Produkte liefern, die bei den Besuchern einer Website das gr\u00f6\u00dfte Interesse wecken. Du kannst die Methode <code>belongsTo()<\/code> verwenden, die die Umkehrung von <code>hasOne()<\/code> ist. Der folgende Code veranschaulicht dies.<\/p>\n<pre><code class=\"language-php\">public function product()\n{\n    return $this-&gt;belongsTo('AppProduct');\n}<\/code><\/pre>\n<p>Im obigen Code gleicht Eloquent die <code>product_id<\/code> mit der Anzahl der \u00fcbergebenen Views ab. Mit Hilfe von <code>product_id<\/code> k\u00f6nnen dann weitere Parameter, wie z. B. Preis und Bestand, abgefragt werden.<\/p>\n<h3>Polymorphe<\/h3>\n<p>In der Anwendungsentwicklung sind die Beziehungen nicht immer einfach. Manchmal gibt es ein Modell, das zu mehr als einem Modelltyp geh\u00f6rt. So k\u00f6nnen z. B. Produkt- und Bestandsmodell beide polymorphe Beziehungen zu einem Bildmodell haben.<\/p>\n<p><a href=\"https:\/\/kinsta.com\/de\/blog\/laravel-beziehungen\/#polymorphic-relationships\">Polymorphe Beziehungen<\/a> w\u00fcrden es dir erm\u00f6glichen, dieselbe Liste von Bildern sowohl f\u00fcr das Inventar als auch f\u00fcr die Produkte zu verwenden. Nachfolgend findest du einen Codeschnipsel, der eine polymorphe Beziehung implementiert.<\/p>\n<pre><code class=\"language-php\">class Image extends Model\n{\n    \/**\n     * Getting the shared image.\n     *\/\n    public function myimage()\n    {\n        return $this-&gt;morphTo();\n    }\n}\n\nclass Product extends Model\n{\n    \/**\n     * Get the image to use on the product's page.\n     *\/\n    public function image()\n    {\n        return $this-&gt;morphOne(Image::class, 'myimage');\n    }\n}\n\nclass Inventory extends Model\n{\n    \/**\n     * Get the image to use on the inventory page.\n     *\/\n    public function image()\n    {\n        return $this-&gt;morphOne(Image::class, 'myimage');\n    }\n}<\/code><\/pre>\n<p>Der obige Code verwendet die Methode <code>morphTo()<\/code>, um das \u00fcbergeordnete Modell des polymorphen Modells abzurufen.<\/p>\n<p>Das ist nur die Spitze des Eisbergs zu diesem Thema. Mehr dazu erf\u00e4hrst du in unserem Leitfaden f\u00fcr Fortgeschrittene zu <a href=\"https:\/\/kinsta.com\/de\/blog\/laravel-beziehungen\/\">Laravel Eloquent-Beziehungen<\/a>.<\/p>\n<h2>3. Eloquent Mutatoren und Accessoren<\/h2>\n<p>Mutatoren und Accessoren erm\u00f6glichen es dir, Daten zu ver\u00e4ndern, w\u00e4hrend du sie speicherst und abrufst. Mutatoren \u00e4ndern Daten, bevor sie gespeichert werden, w\u00e4hrend Accessoren Daten beim Abrufen \u00e4ndern.<\/p>\n<p>Wenn du in deiner Datenbank Namen in Kleinbuchstaben speichern willst, kannst du einen Mutator erstellen, der diese \u00c4nderung vornimmt. Wenn du den Vor- und Nachnamen des Nutzers auf deinen Anwendungs-Seiten als einen Namen anzeigen m\u00f6chtest, kannst du einen Accessor erstellen, um dies zu erreichen.<\/p>\n<p>Im Folgenden findest du ein Beispiel f\u00fcr einen Mutator, der Namen vor dem Speichern gro\u00df schreibt.<\/p>\n<pre><code class=\"language-php\">class User extends Model\n{\n    \/**\n     * Mutators capitalizing first and last name.\n     *\/\n    public function setFirstNameAttribute($value)\n    {\n        $this-&gt;attributes['first_name'] = ucfirst($value);\n    }\n\n    public function setLastNameAttribute($value)\n    {\n        $this-&gt;attributes['last_name'] = ucfirst($value);\n    }\n}<\/code><\/pre>\n<p>Nachfolgend ein Beispiel f\u00fcr einen Accessor, der den Vor- und Nachnamen des Nutzers kombiniert.<\/p>\n<pre><code class=\"language-php\">class User extends Model\n{\n    \/**\n     * Accessor combining both names.\n     *\/\n    public function getFullNameAttribute()\n    {\n        return ucfirst($this-&gt;first_name) . ' ' . ucfirst($this-&gt;last_name);\n    }\n}<\/code><\/pre>\n<h2>4. Eloquent-Sammlungen<\/h2>\n<p>Eloquent Collections behandeln Methoden, die mehrere Modellergebnisse zur\u00fcckgeben. Diese Klasse findest du unter <code>IlluminateDatabaseEloquentCollection<\/code>.<\/p>\n<p>Wie bei Arrays ist es auch bei Collections m\u00f6glich, durch sie zu iterieren. Nachfolgend siehst du eine einfache Iteration.<\/p>\n<pre><code class=\"language-php\">use AppModelsProduct;\n\n$products = Product::where('availability', 1)-&gt;get();\n\nforeach ($products as $product) {\n   echo $product-&gt;name;\n}<\/code><\/pre>\n<p>Sammlungen sind m\u00e4chtiger als Arrays, weil du mit ihnen komplexere Operationen durchf\u00fchren kannst. Du kannst dir zum Beispiel die Liste aller verf\u00fcgbaren Produkte anzeigen lassen und alle auslassen, die nicht &#8222;aktiv&#8220; sind<\/p>\n<pre><code class=\"language-php\">$names = Product::all()-&gt;reject(function ($product) {\n   return $product-&gt;active === false;\n})-&gt;map(function ($product) {\n   return $product-&gt;name;\n});<\/code><\/pre>\n<p>Im Folgenden findest du einige der Methoden, die die Klasse Collections bietet.<\/p>\n<h3>Enth\u00e4lt<\/h3>\n<p>Die Methode <code>contains()<\/code> pr\u00fcft, ob der Code einen bestimmten Modus enth\u00e4lt, wie im folgenden Code gezeigt:<\/p>\n<pre><code class=\"language-php\">$products-&gt;contains(1);\n$products-&gt;contains(Product::find(1));<\/code><\/pre>\n<h3>Alle<\/h3>\n<p>Die Methode <code>all()<\/code> gibt die in der Sammlung enthaltenen Modelle zur\u00fcck (siehe unten):<\/p>\n<pre><code class=\"language-php\">$collection = Product::all();<\/code><\/pre>\n<p>Viele andere Methoden werden von der <a href=\"https:\/\/laravel.com\/docs\/9.x\/eloquent-collections\" target=\"blank\" rel=\"noopener\">Klasse Collections<\/a> unterst\u00fctzt.<\/p>\n<h2>5. Eloquent-Modelle l\u00f6schen<\/h2>\n<p>In Eloquent erstellst du Modelle, die dir bei der Erstellung von Abfragen helfen. Manchmal musst du jedoch Modelle l\u00f6schen, um eine Anwendung effizienter zu machen. Dazu rufst du <code>delete<\/code> f\u00fcr die Instanz des Modells auf.<\/p>\n<pre><code class=\"language-php\">use AppModelsStock;\n\n$stock = Stock::find(1);\n$stock-&gt;delete();<\/code><\/pre>\n<p>Mit dem obigen Code wird das Modell <code>Stock<\/code> aus einer Anwendung entfernt. Dies ist eine dauerhafte Entfernung, die nicht r\u00fcckg\u00e4ngig gemacht werden kann.<\/p>\n<h3>Sanftes L\u00f6schen<\/h3>\n<p>Eine weitere Funktion von Eloquent ist das sanfte L\u00f6schen von Modellen. Wenn du ein Modell sanft l\u00f6schst, entfernst du es nicht aus der Datenbank.<\/p>\n<p>Du kennzeichnest es mit <code>deleted_at<\/code>, um die Zeit und das Datum des L\u00f6schvorgangs anzugeben. Dies ist wichtig, wenn du einen Teil der Datenbankeintr\u00e4ge ausschlie\u00dfen m\u00f6chtest, z. B. unvollst\u00e4ndige Eintr\u00e4ge, ohne sie dauerhaft zu l\u00f6schen. Es hilft dabei, die Abfrageergebnisse von Eloquent zu bereinigen, ohne zus\u00e4tzliche Bedingungen hinzuzuf\u00fcgen.<\/p>\n<p>Du aktivierst Soft Delete, indem du die Eigenschaft <code>softDeletes<\/code> zu einem Modell hinzuf\u00fcgst und eine Spalte <code>deleted_at<\/code> in der zugeh\u00f6rigen Datenbanktabelle einf\u00fcgst.<\/p>\n<h3>Hinzuf\u00fcgen von Soft Delete zu einem Modell<\/h3>\n<p>Du aktivierst Soft Deletes im Modell, indem du die Eigenschaft <code>IlluminateDatabaseEloquentSoftDeletes<\/code> hinzuf\u00fcgst, wie unten gezeigt.<\/p>\n<pre><code class=\"language-php\">namespace AppModels;\nuse IlluminateDatabaseEloquentModel;\nuse IlluminateDatabaseEloquentSoftDeletes;\n\nclass Flight extends Model\n{\n   use SoftDeletes;\n}<\/code><\/pre>\n<h3>So f\u00fcgst du eine delete_at-Spalte hinzu<\/h3>\n<p>Bevor du Soft Delete verwenden kannst, sollte deine Datenbank eine <code>delete_at<\/code> Spalte haben. Du f\u00fcgst diese Spalte mit einer Hilfsmethode des Laravel <code>Schema<\/code> builders hinzu, wie unten gezeigt:<\/p>\n<pre><code class=\"language-php\">use IlluminateDatabaseSchemaBlueprint;\nuse IlluminateSupportFacadesSchema;\n\nSchema::table('users', function (Blueprint $table) {\n   $table-&gt;softDeletes();\n});\n\nSchema::table('users', function (Blueprint $table) {\n   $table-&gt;dropSoftDeletes();\n});<\/code><\/pre>\n<p>Dies f\u00fcgt eine <code>delete_at<\/code> Spalte hinzu, die mit dem Datum und der Uhrzeit aktualisiert wird, wenn eine Soft Delete Aktion erfolgreich war.<\/p>\n<h3>Wie man sanft gel\u00f6schte Modelle einbezieht<\/h3>\n<p>Wenn du m\u00f6chtest, dass die Abfrageergebnisse auch weich gel\u00f6schte Modelle enthalten, f\u00fcgst du der Abfrage die Methode <code>withTrashed()<\/code> hinzu. Ein Beispiel ist unten abgebildet:<\/p>\n<pre><code class=\"language-php\">$stocks = Stock::withTrashed()-&gt;where('stock_id', 20)-&gt;get();<\/code><\/pre>\n<p>Die obige Abfrage enth\u00e4lt auch Modelle mit dem Attribut <code>deleted_at<\/code>.<\/p>\n<h3>Wie du nur sanft gel\u00f6schte Modelle abfragst<\/h3>\n<p>Eloquent erm\u00f6glicht es dir auch, nur weich gel\u00f6schte Modelle abzufragen. Dazu rufst du z. B. die Methode <code>onlyTrashed()<\/code> auf:<\/p>\n<pre><code class=\"language-php\">$Stock = Stock::onlyTrashed()-&gt;where('stock_id', 1)-&gt;get();<\/code><\/pre>\n<h3>Wie man gel\u00f6schte Modelle wiederherstellt<\/h3>\n<p>Du kannst auch sanft gel\u00f6schte Modelle wiederherstellen, indem du die Methode <code>restore()<\/code> aufrufst.<\/p>\n<pre><code class=\"language-php\">$stocks = Stock::withTrashed()-&gt;where('stock_id', 20)-&gt;restore();<\/code><\/pre>\n<p>Diese \u00e4ndert das Feld <code>delete_at<\/code> eines soft gel\u00f6schten Modells in null. Wenn das Modell nicht soft-gel\u00f6scht wurde, bleibt das Feld unver\u00e4ndert.<\/p>\n<h2>6. Eloquent Factories<\/h2>\n<p>Modellfabriken in Laravel erstellen Dummy-Daten, die du verwenden kannst, um deine Anwendung zu testen oder um deine Datenbank zu f\u00fcllen. Um dies zu implementieren, erstellst du ein Modell in einer Factory-Klasse, wie im folgenden Beispiel gezeigt. Das Codeschnipsel erstellt eine Modellfabrik, die gef\u00e4lschte Lieferanten eines Produkts und seiner Preise erzeugen kann.<\/p>\n<pre><code class=\"language-php\">namespace DatabaseFactories;\nuse IlluminateDatabaseEloquentFactoriesFactory;\nuse IlluminateSupportStr;\n\nclass StockFactory extends Factory\n{\n    public function definition()\n    {\n        return [\n            'supplier_name' =&gt; fake()-&gt;name(),\n            'price' =&gt; fake()-&gt;numberBetween($min = 1500, $max = 6000),\n        ];\n    }\n}<\/code><\/pre>\n<p>Die Methode <code>definition()<\/code> im obigen Beispiel gibt eine Reihe von Attributwerten zur\u00fcck, die Laravel beim Aufbau des Modells verwendet. Der Fake-Helper hilft der Factory, auf die PHP-Bibliothek <a href=\"https:\/\/fakerphp.github.io\/\" target=\"blank\" rel=\"noopener\">Faker<\/a> zuzugreifen.<\/p>\n<h2 id=\"h.kvdd4m1lmda5\">Zusammenfassung<\/h2>\n<p>Eloquent macht die Entwicklung von Anwendungen in Laravel einfacher. Dank Implementierungen wie Beziehungen ist es bei der Erstellung einfacher und komplexer Abfragen gleicherma\u00dfen effektiv. Die einfache Erzeugung von funktionalen Dummy-Daten mit Hilfe von Factories macht es perfekt f\u00fcr Entwickler, die robuste Tests f\u00fcr ihre Anwendungen erstellen wollen. Au\u00dferdem helfen Eloquent Scopes dabei, komplexe Abfragen so zu vereinfachen, dass der Code aufger\u00e4umt bleibt.<\/p>\n<p>In diesem Artikel wurden nur sechs der wichtigsten Funktionen von Eloquent vorgestellt, aber Eloquent hat noch weitere leistungsstarke Funktionen. Die Verwendung von gemeinsam nutzbaren und wiederverwendbaren Modellen hat Eloquent zu einem beliebten Feature unter Entwicklern gemacht, und die Einfachheit der Eloquent-Abfragen macht Laravel zu einem entwicklerfreundlichen Framework &#8211; auch f\u00fcr Anf\u00e4nger.<\/p>\n<p>Egal, wie viel Erfahrung du hast, Kinstas <a href=\"https:\/\/sevalla.com\/application-hosting\/\">Web Anwendungs-Hosting-Plattform<\/a> unterst\u00fctzt Entwickler wie dich. Unser <a href=\"https:\/\/docs.sevalla.com\/templates\/overviewphp-examples#laravel\">Laravel-Schnellstart-Template<\/a> zeigt, wie einfach es ist, deine Anwendung auf unseren Servern im <a href=\"https:\/\/kinsta.com\/de\/blog\/cloud-plattform-fuer-entwickler\/\">Premium-Tier-Netzwerk<\/a> von Google Cloud zum Laufen zu bringen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Laravel ist ein quelloffenes und einfach zu bedienendes PHP-Framework. Eine seiner leistungsst\u00e4rksten Funktionen ist Eloquent, ein objektrelationaler Mapper (ORM), der die Bearbeitung von Datenbankeintr\u00e4gen vereinfacht. Eloquent &#8230;<\/p>\n","protected":false},"author":259,"featured_media":68802,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[958],"class_list":["post-68801","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-laravel"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Sechs Funktionen um Laravel Eloquent zu beherrschen - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Verbesser deine Laravel-Kenntnisse mit Eloquent-Abfragebereichen, Beziehungen, Mutatoren und Accessoren, Sammlungen, Modelll\u00f6schung und Fabriken.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Sechs Dinge, die du wissen musst, um Laravel Eloquent zu beherrschen\" \/>\n<meta property=\"og:description\" content=\"Verbesser deine Laravel-Kenntnisse mit Eloquent-Abfragebereichen, Beziehungen, Mutatoren und Accessoren, Sammlungen, Modelll\u00f6schung und Fabriken.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-02-08T18:26:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-22T18:57:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/02\/master-laravel-eloquent.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Steve Bonisteel\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Verbesser deine Laravel-Kenntnisse mit Eloquent-Abfragebereichen, Beziehungen, Mutatoren und Accessoren, Sammlungen, Modelll\u00f6schung und Fabriken.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/02\/master-laravel-eloquent.png\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_DE\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_DE\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Steve Bonisteel\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"8\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/\"},\"author\":{\"name\":\"Steve Bonisteel\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f\"},\"headline\":\"Sechs Dinge, die du wissen musst, um Laravel Eloquent zu beherrschen\",\"datePublished\":\"2024-02-08T18:26:47+00:00\",\"dateModified\":\"2024-04-22T18:57:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/\"},\"wordCount\":1540,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/02\/master-laravel-eloquent.png\",\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/\",\"url\":\"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/\",\"name\":\"Sechs Funktionen um Laravel Eloquent zu beherrschen - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/02\/master-laravel-eloquent.png\",\"datePublished\":\"2024-02-08T18:26:47+00:00\",\"dateModified\":\"2024-04-22T18:57:42+00:00\",\"description\":\"Verbesser deine Laravel-Kenntnisse mit Eloquent-Abfragebereichen, Beziehungen, Mutatoren und Accessoren, Sammlungen, Modelll\u00f6schung und Fabriken.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/02\/master-laravel-eloquent.png\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/02\/master-laravel-eloquent.png\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel\",\"item\":\"https:\/\/kinsta.com\/de\/thema\/laravel\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Sechs Dinge, die du wissen musst, um Laravel Eloquent zu beherrschen\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/de\/#website\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/de\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\",\"https:\/\/x.com\/Kinsta_DE\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f\",\"name\":\"Steve Bonisteel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g\",\"caption\":\"Steve Bonisteel\"},\"description\":\"Steve Bonisteel is a Technical Editor at Kinsta who began his writing career as a print journalist, chasing ambulances and fire trucks. He has been covering Internet-related technology since the late 1990s.\",\"url\":\"https:\/\/kinsta.com\/de\/blog\/author\/stevebonisteel\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Sechs Funktionen um Laravel Eloquent zu beherrschen - Kinsta\u00ae","description":"Verbesser deine Laravel-Kenntnisse mit Eloquent-Abfragebereichen, Beziehungen, Mutatoren und Accessoren, Sammlungen, Modelll\u00f6schung und Fabriken.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/","og_locale":"de_DE","og_type":"article","og_title":"Sechs Dinge, die du wissen musst, um Laravel Eloquent zu beherrschen","og_description":"Verbesser deine Laravel-Kenntnisse mit Eloquent-Abfragebereichen, Beziehungen, Mutatoren und Accessoren, Sammlungen, Modelll\u00f6schung und Fabriken.","og_url":"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","article_published_time":"2024-02-08T18:26:47+00:00","article_modified_time":"2024-04-22T18:57:42+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/02\/master-laravel-eloquent.png","type":"image\/png"}],"author":"Steve Bonisteel","twitter_card":"summary_large_image","twitter_description":"Verbesser deine Laravel-Kenntnisse mit Eloquent-Abfragebereichen, Beziehungen, Mutatoren und Accessoren, Sammlungen, Modelll\u00f6schung und Fabriken.","twitter_image":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/02\/master-laravel-eloquent.png","twitter_creator":"@Kinsta_DE","twitter_site":"@Kinsta_DE","twitter_misc":{"Verfasst von":"Steve Bonisteel","Gesch\u00e4tzte Lesezeit":"8\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/"},"author":{"name":"Steve Bonisteel","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f"},"headline":"Sechs Dinge, die du wissen musst, um Laravel Eloquent zu beherrschen","datePublished":"2024-02-08T18:26:47+00:00","dateModified":"2024-04-22T18:57:42+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/"},"wordCount":1540,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/02\/master-laravel-eloquent.png","inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/","url":"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/","name":"Sechs Funktionen um Laravel Eloquent zu beherrschen - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/02\/master-laravel-eloquent.png","datePublished":"2024-02-08T18:26:47+00:00","dateModified":"2024-04-22T18:57:42+00:00","description":"Verbesser deine Laravel-Kenntnisse mit Eloquent-Abfragebereichen, Beziehungen, Mutatoren und Accessoren, Sammlungen, Modelll\u00f6schung und Fabriken.","breadcrumb":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/#primaryimage","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/02\/master-laravel-eloquent.png","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/02\/master-laravel-eloquent.png","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/de\/blog\/laravel-eloquent\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/de\/"},{"@type":"ListItem","position":2,"name":"Laravel","item":"https:\/\/kinsta.com\/de\/thema\/laravel\/"},{"@type":"ListItem","position":3,"name":"Sechs Dinge, die du wissen musst, um Laravel Eloquent zu beherrschen"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/de\/#website","url":"https:\/\/kinsta.com\/de\/","name":"Kinsta\u00ae","description":"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen","publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/de\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","https:\/\/x.com\/Kinsta_DE","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f","name":"Steve Bonisteel","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g","caption":"Steve Bonisteel"},"description":"Steve Bonisteel is a Technical Editor at Kinsta who began his writing career as a print journalist, chasing ambulances and fire trucks. He has been covering Internet-related technology since the late 1990s.","url":"https:\/\/kinsta.com\/de\/blog\/author\/stevebonisteel\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/68801","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/users\/259"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/comments?post=68801"}],"version-history":[{"count":4,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/68801\/revisions"}],"predecessor-version":[{"id":69774,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/68801\/revisions\/69774"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/68801\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/68801\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/68801\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/68801\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/68801\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/68801\/translations\/jp"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/68801\/translations\/es"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/68801\/translations\/nl"},{"href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/68801\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media\/68802"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media?parent=68801"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/tags?post=68801"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/topic?post=68801"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}