Home>Article>PHP Framework> How Laravel fills SQL data gracefully
The following columnLaravel Tutorialwill introduce to you laravel’s method of solving Laravel’s elegant filling of SQL data. I hope it will be helpful to friends in need!
We all know that during the Laravel development process, modifications to the database structure can be made throughmigration
Complete, pre-population of database production data can be completed usingseeder
.
If there is a lot of pre-populated data and it is generated during the development process, the insertion in handwrittenseeder
seems too rigid, and you may need to copy and modify it one by one. These contents:
\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', ), ));
If there is enough data, I believe you will find a good way to batch process it.
One, I can export the.sql
file from the database after all the pre-populated data are processed during the development process. Then import it into the production environment as a script.
Second, I can structure the existing data in the database and generate aseeder
file, which can then be filled in through theartisan db:seed
command.
Both methods are available.
Use database management tools such as HeidiSQL to export the required database tables to the.sql
file.
In Laravel, you can write acommand
, and write the following code in the logic:
DB::unprepared(file_get_contents('path/data.sql'));
This This is the best solution in my opinion. After all, Laravel provides a complete database migration and filling mechanism, why not take advantage of it?
Executecomposer require orangehill/iseed -vvv
installation package.
Executephp artisan iseed table_name
will automatically create aseeder
file corresponding to the table name in thedatabase/seeders
directory.
Then, we can useartisan db:seed --class=YourTableSeeder
to specify the filling.
The above is the detailed content of How Laravel fills SQL data gracefully. For more information, please follow other related articles on the PHP Chinese website!