{"id":25199,"date":"2021-06-02T19:22:00","date_gmt":"2021-06-02T16:22:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25199"},"modified":"2021-10-18T02:34:49","modified_gmt":"2021-10-17T23:34:49","slug":"so-fuehren-sie-das-datenbank-seeding-in-laravel-durch","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/de\/so-fuehren-sie-das-datenbank-seeding-in-laravel-durch\/","title":{"rendered":"So f\u00fchren Sie das Datenbank-Seeding in Laravel durch"},"content":{"rendered":"<p>In der Vergangenheit habe ich einen Artikel <a href=\"https:\/\/themewp.inform.click\/de\/so-setzen-sie-eine-datenbank-mit-der-php-faker-bibliothek-ein\/\" title=\"zum Seed einer Datenbank in PHP mit der Faker-Bibliothek ver\u00f6ffentlicht\" >zum Seed einer Datenbank in PHP mit der Faker-Bibliothek ver\u00f6ffentlicht<\/a>. Bei der Recherche zu diesem Thema habe ich festgestellt, dass Laravel dieselbe Bibliothek auch zum Seeding der Datenbank verwendet. Da ich einen Artikel zu diesem Thema f\u00fcr PHP geschrieben habe, habe ich mich entschlossen, auch einen Beitrag zum Laravel-Datenbank-Seeding zu schreiben. Dies liegt daran, dass Laravel einen eigenen Prozess zum Seeding der Datenbank verwendet.<\/p>\n<h3>Was ist Database Seeding?<\/h3>\n<p>Datenbank-Seeding bedeutet, dass Sie Ihre Datenbanktabellen programmgesteuert mit den Testdaten f\u00fcllen. Mit diesem Ansatz kann man innerhalb weniger Minuten Tausende von Datens\u00e4tzen in die Datenbank eingeben. Es ist ein effizienter Weg, anstatt es manuell zu tun. Vielleicht m\u00f6chten Sie Dummy-Daten, um Ihre Anwendung zu testen, und das Seeding der Datenbank durch das Programm spart Ihnen eine Menge Zeit.<\/p>\n<h3>Faker-Bibliothek<\/h3>\n<p><a href=\"https:\/\/github.com\/fzaninotto\/Faker\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Faker<\/a> ist eine Open-Source-Bibliothek, die gef\u00e4lschte Daten f\u00fcr die Datenbank Ihrer Anwendung generiert. Mit Faker kann man in wenigen Minuten Tausende von Eintr\u00e4gen in die Datenbank einf\u00fcgen. Diese Bibliothek erspart Entwicklern eine langweilige Dateneingabe. Sie k\u00f6nnen fast jede Art von Daten erhalten, die Sie m\u00f6chten. Die Bibliothek generiert eine gef\u00e4lschte E-Mail, einen Namen, eine Handynummer, W\u00f6rter, S\u00e4tze, Abs\u00e4tze, Zufallszahlen usw. Sie k\u00f6nnen die Art der von ihnen bereitgestellten Daten in der <a href=\"https:\/\/github.com\/fzaninotto\/Faker\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Dokumentation<\/a> lesen .<\/p>\n<p>Laravel installiert diese Bibliothek im Kern. Das bedeutet, dass Sie es nicht separat installieren m\u00fcssen. Lassen Sie uns jedoch einen Blick darauf werfen, wie Sie das Datenbank-Seeding in Laravel durchf\u00fchren.<\/p>\n<h3>Einstieg<\/h3>\n<p>Um zu beginnen, werde ich eine &#8218;Kunden&#8216;-Tabelle mit den Spalten Name, E-Mail und Bio erstellen. Wir werden den Prozess des Seedings der einzelnen Tabelle sehen. Auf die gleiche Weise k\u00f6nnen Benutzer beliebig viele Tabellen mit einem Seeding versehen.<\/p>\n<p>Erstellen Sie eine Migration f\u00fcr Kundentabelle mit dem Befehl:<\/p>\n<pre><code>php artisan make:migration create_customers_table<\/code><\/pre>\n<p>\u00d6ffnen Sie die Migrationsdatei und f\u00fcgen Sie die Spalten wie unten gezeigt zur &#8218;up&#8216;-Methode hinzu.<\/p>\n<pre><code>public function up()\n{\n\u00a0\u00a0\u00a0\u00a0Schema::create('customers', function (Blueprint $table) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;id();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('name');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('email');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;text('bio');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;timestamps();\n\u00a0\u00a0\u00a0\u00a0});\n}<\/code><\/pre>\n<p>F\u00fchren Sie den Migrationsbefehl aus, der eine &#8218;customers&#8216;-Tabelle in Ihrer Datenbank erstellt.<\/p>\n<pre><code>php artisan migrate<\/code><\/pre>\n<p>Erstellen Sie als N\u00e4chstes ein Modell &#8218;Customer&#8216;, das der Tabelle &#8218;customers&#8216; zugeordnet ist. Ab Laravel 8.x werden Ihre Modelle im Verzeichnis &#8218;App\/Models&#8216; erstellt. F\u00fcr dieses Tutorial gehe ich davon aus, dass Sie Laravel 8.x verwenden. In der \u00e4lteren Version von Laravel m\u00fcssen Sie den Modellpfad anpassen.<\/p>\n<pre><code>php artisan make:model Customer<\/code><\/pre>\n<h3>Datenbank-Seeding in Laravel<\/h3>\n<p>Das Seeding einer Datenbank in Laravel erfordert, dass Sie einige Schritte ausf\u00fchren, n\u00e4mlich Seeder schreiben, eine Modellfabrik erstellen und Seeder ausf\u00fchren. Machen wir es nacheinander.<\/p>\n<h4>Seeder schreiben<\/h4>\n<p>Wenn Sie sich das Laravel-Dateisystem ansehen, dann bemerken Sie das Verzeichnis <code>database\/seeders<\/code>. Alle Seed-Klassen gehen in dieses Verzeichnis. Eine Seed-Klasse hat die <code>run<\/code>Methode, von der aus Sie die Daten in die Tabelle einf\u00fcgen k\u00f6nnen.<\/p>\n<p>Erstellen Sie eine Seed-Klasse CustomerSeeder mit dem Befehl:<\/p>\n<pre><code>php artisan make:seeder CustomerSeeder<\/code><\/pre>\n<p>Nachdem Sie diesen Befehl ausgef\u00fchrt haben, sollten Sie die <code>CustomerSeeder.php<\/code>Datei sehen, die unter erstellt wurde <code>database\/seeders<\/code>. \u00d6ffnen Sie diese Datei und <code>run<\/code>f\u00fcgen Sie der Funktion den folgenden Code hinzu.<\/p>\n<pre><code>public function run()\n{\n\u00a0\u00a0\u00a0\u00a0AppModelsCustomer::factory()-&gt;count(50)-&gt;create()-&gt;each(function ($customer) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$customer-&gt;save();\n\u00a0\u00a0\u00a0\u00a0});\n}<\/code><\/pre>\n<p>Hier rufe ich die Kundenfabrik auf, die wir im n\u00e4chsten Schritt erstellen werden. Beachten Sie, dass ich den Wert 50 an die Methode &quot;count&quot; \u00fcbergeben habe. Das bedeutet, dass 50 Zeilen in die Tabelle &#8218;Kunden&#8216; eingef\u00fcgt werden sollten. Passen Sie diesen Wert nach Belieben an.<\/p>\n<h4>Fabriken erstellen<\/h4>\n<p>Der Code, den ich geschrieben habe <code>CustomerSeeder<\/code>, sucht nach einer Fabrik, um die Testdaten zu erhalten. Das bedeutet, dass wir eine Modellfabrik schaffen m\u00fcssen. Ich werde der Fabrik einen Namen als CustomerFactory geben. F\u00fchren Sie den Befehl aus, um die Modellfactory zu generieren.<\/p>\n<pre><code>php artisan make:factory CustomerFactory --model=Customer<\/code><\/pre>\n<p>Dieser Befehl erstellt eine <code>CustomerFactory.php<\/code>innerhalb des <code>database\/factories<\/code>Verzeichnisses. \u00d6ffnen Sie diese Datei und generieren Sie zur Definitionsmethode wie folgt Testdaten.<\/p>\n<pre><code>public function definition()\n{\n\u00a0\u00a0\u00a0\u00a0return [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'name' =&gt; $this-&gt;faker-&gt;name,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'email' =&gt; $this-&gt;faker-&gt;unique()-&gt;safeEmail,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'bio' =&gt; $this-&gt;faker-&gt;text,\n\u00a0\u00a0\u00a0\u00a0];\n}<\/code><\/pre>\n<p>Das obige Array gibt einen zuf\u00e4llig ausgew\u00e4hlten Namen, eine E-Mail und einen Text f\u00fcr die Bio zur\u00fcck.<\/p>\n<h4>Laufende S\u00e4maschinen<\/h4>\n<p>Wir haben alle mit der S\u00e4maschine und der Fabrik eingestellt. F\u00fchren Sie nun unseren Seeder mit dem folgenden Befehl aus.<\/p>\n<pre><code>php artisan db:seed --class=CustomerSeeder<\/code><\/pre>\n<p>\u00dcberpr\u00fcfen Sie Ihre &#8218;Kunden&#8216;-Tabelle und sie sollten die 50 Dummy-Eintr\u00e4ge eingef\u00fcgt haben.<\/p>\n<p>Der obige Befehl f\u00fchrt einen einzelnen Seeder aus, den wir explizit \u00fcbergeben haben. Angenommen, Sie m\u00f6chten mehrere Seeder erstellen und alle mit einem einzigen Befehl ausf\u00fchren. In solchen F\u00e4llen sollten Sie Ihre Seeder von der aus aufrufen, <code>DatabaseSeeder<\/code>die sich im selben Verzeichnis befindet <code>database\/seeders<\/code>.<\/p>\n<pre><code>public function run()\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;call(CustomerSeeder::class);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ call as many seeders you wish\n\u00a0\u00a0\u00a0\u00a0}<\/code><\/pre>\n<p>Der Benutzer kann so viele Seeder nach seinen Anforderungen erstellen und \u00fcber diese <code>run<\/code>Methode aufrufen .<\/p>\n<p>F\u00fchren Sie schlie\u00dflich die Seeder mit dem folgenden Befehl aus.<\/p>\n<pre><code>php artisan db:seed<\/code><\/pre>\n<p>Es ruft alle Seeder aus der <code>run<\/code>Methode auf und f\u00fchrt sie aus.<\/p>\n<p>Ich hoffe, Sie verstehen das Datenbank-Seeding in Laravel. Ich w\u00fcrde gerne Ihre Gedanken und Vorschl\u00e4ge im Kommentarbereich unten h\u00f6ren.<\/p>\n<h4>Zum Thema passende Artikel<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/paypal-payments-pro-integration-in-laravel\/\" title=\"PayPal Payments Pro-Integration in Laravel\">PayPal Payments Pro-Integration in Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/so-erstellen-sie-einen-honeypot-fuer-den-kampf-gegen-formular-spam-in-laravel\/\" title=\"Erstellen Sie einen Honeypot f\u00fcr den Kampf gegen Formular-Spam in Laravel\">Erstellen Sie einen Honeypot f\u00fcr den Kampf gegen Formular-Spam in Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/eine-anleitung-zum-hinzufuegen-von-google-recaptcha-v3-zu-ihrer-laravel-website\/\" title=\"Hinzuf\u00fcgen von Google reCAPTCHA v3 zu Ihrer Laravel-Website\">Hinzuf\u00fcgen von Google reCAPTCHA v3 zu Ihrer Laravel-Website<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Aufnahmequelle:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Suchen Sie nach Datenbank-Seeding in Laravel? In diesem Artikel zeige ich, wie Sie Seeding in der Laravel-Anwendung erstellen und ausf\u00fchren. Faker-Bibliothek<\/p>\n","protected":false},"author":1,"featured_media":21644,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[496],"tags":[845],"class_list":["post-25199","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-de"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/25199","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/comments?post=25199"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/25199\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media\/21644"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media?parent=25199"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/categories?post=25199"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/tags?post=25199"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}