Heim > PHP-Framework > Laravel > Hauptteil

Wie Laravel SQL-Daten elegant füllt

藏色散人
Freigeben: 2021-01-27 08:57:36
nach vorne
2216 Leute haben es durchsucht

Die Methode zur Einführung von Laravel zur Lösung der eleganten SQL-Daten von Laravel. Ich hoffe, dass sie Freunden in Not hilfreich sein wird!

Wie Laravel SQL-Daten elegant fülltHintergrund

Wir alle wissen, dass während des Entwicklungsprozesses von Laravel Änderungen an der Datenbankstruktur durch Migration abgeschlossen werden können und seeder Fertig. <span class="header-link octicon octicon-link"></span>Wenn viele vorab ausgefüllte Daten vorhanden sind und diese während des Entwicklungsprozesses generiert werden, erscheint das Einfügen in den handschriftlichen <code>Seeder zu starr. Möglicherweise müssen Sie den Inhalt einzeln kopieren und ändern eins:

\DB::table('software_categories')->insert(array(
            0 =>
                array(
                    'id' => 1,
                    'name' => '操作系统',
                    'description' => NULL,
                    'deleted_at' => NULL,
                    'created_at' => '2021-01-19 19:22:31',
                    'updated_at' => '2021-01-19 19:22:36',
                    'parent_id' => NULL,
                    'order' => '0',
                ),
            1 =>
                array(
                    'id' => 2,
                    'name' => '办公应用',
                    'description' => NULL,
                    'deleted_at' => NULL,
                    'created_at' => '2021-01-19 19:22:53',
                    'updated_at' => '2021-01-19 19:22:53',
                    'parent_id' => NULL,
                    'order' => '0',
                ),
            2 =>
                array(
                    'id' => 3,
                    'name' => '图像处理',
                    'description' => NULL,
                    'deleted_at' => NULL,
                    'created_at' => '2021-01-19 19:22:59',
                    'updated_at' => '2021-01-19 19:22:59',
                    'parent_id' => NULL,
                    'order' => '0',
                ),
            3 =>
                array(
                    'id' => 4,
                    'name' => '网络工具',
                    'description' => NULL,
                    'deleted_at' => NULL,
                    'created_at' => '2021-01-19 19:23:04',
                    'updated_at' => '2021-01-19 19:23:10',
                    'parent_id' => NULL,
                    'order' => '0',
                ),
            4 =>
                array(
                    'id' => 5,
                    'name' => '影音工具',
                    'description' => NULL,
                    'deleted_at' => NULL,
                    'created_at' => '2021-01-19 19:23:35',
                    'updated_at' => '2021-01-19 19:23:35',
                    'parent_id' => NULL,
                    'order' => '0',
                ),
            5 =>
                array(
                    'id' => 6,
                    'name' => '系统工具',
                    'description' => NULL,
                    'deleted_at' => NULL,
                    'created_at' => '2021-01-19 19:23:47',
                    'updated_at' => '2021-01-19 19:23:47',
                    'parent_id' => NULL,
                    'order' => '0',
                ),
            6 =>
                array(
                    'id' => 7,
                    'name' => '设计工具',
                    'description' => NULL,
                    'deleted_at' => NULL,
                    'created_at' => '2021-01-19 19:24:05',
                    'updated_at' => '2021-01-19 19:24:05',
                    'parent_id' => NULL,
                    'order' => '0',
                ),
        ));
Nach dem Login kopieren

Wenn genügend Daten vorhanden sind, werden Sie meiner Meinung nach eine gute Möglichkeit finden, diese stapelweise zu verarbeiten. migration 完成,对于数据库生产数据的预填充可以使用 seeder 完成。

如果预填充的数据比较多,而又是在开发过程中产生的,手写 seeder 中的插入就显得过于死板,你可能需要一笔一笔的复制修改这些内容:

DB::unprepared(file_get_contents('path/data.sql'));
Nach dem Login kopieren

这些数据如果够多,我相信你也一定会找一个好办法来批量处理。

方案

一,我可以在开发过程中对预填充的数据全部处理完成后,从数据库导出 .sql 文件,再作为脚本导入到生产环境。

二,我可以将数据库中已存在的数据进行结构化处理,生成 seeder 文件,之后就可以通过 artisan db:seed 命令进行填充。

这两种方法都可以。

SQL文件直接导入

使用数据库管理工具,如 HeidiSQL 导出需要的数据库表至 .sql 文件。

在 Laravel 中,可以编写一个 command,逻辑中写入以下代码:

rrreee

Seeder填充

这是我认为最佳的方案,毕竟 Laravel 提供了完善的数据库迁移和填充机制,何不利用它?

执行 composer require orangehill/iseed -vvv 安装包。

执行 php artisan iseed table_name 会自动在 database/seeders 目录中创建对应表名的 seeder 文件。

而后,我们就可以使用 artisan db:seed --class=YourTableSeeder

🎜🎜Option 🎜🎜Zuerst kann ich die Datei .sql aus der Datenbank exportieren, nachdem alle vorab ausgefüllten Daten während des Entwicklungsprozesses verarbeitet wurden, und sie dann als Datei in die Produktionsumgebung importieren Skript. 🎜🎜Zweitens kann ich die vorhandenen Daten in der Datenbank strukturieren und eine seeder-Datei generieren, die dann über den Befehl artisan db:seed ausgefüllt werden kann. 🎜🎜Beide Methoden sind verfügbar. 🎜

🎜🎜SQL-Dateidirektimport

🎜Verwenden Sie Datenbankverwaltungstools wie HeidiSQL, um die erforderlichen Datenbanktabellen in .sql-Dateien zu exportieren. 🎜🎜In Laravel können Sie einen Befehl schreiben und den folgenden Code in der Logik schreiben: 🎜rrreee

🎜🎜Seeder-Füllung

🎜Das ist meiner Meinung nach die beste Lösung. Schließlich bietet Laravel einen vollständigen Datenbankmigrations- und Auffüllmechanismus. Warum nicht davon profitieren? 🎜🎜Führen Sie das Installationspaket composer require orangehill/iseed -vvv aus. 🎜🎜Durch Ausführen von php artisan iseed table_name wird automatisch eine seeder-Datei erstellt, die dem Tabellennamen im Verzeichnis database/seeders entspricht. 🎜🎜Dann können wir artisan db:seed --class=YourTableSeeder verwenden, um die Füllung festzulegen. 🎜

Das obige ist der detaillierte Inhalt vonWie Laravel SQL-Daten elegant füllt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:learnku.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!