资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

Laravel怎样填充SQL数据-创新互联

这篇文章主要介绍了Laravel怎样填充SQL数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

创新互联公司于2013年开始,是专业互联网技术服务公司,拥有项目成都网站建设、做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元河北做网站,已为上家服务,为河北各地企业和个人服务,联系电话:13518219792

背景

我们都知道在 Laravel 开发过程中,对于数据库结构的修改可以通过migration 完成,对于数据库生产数据的预填充可以使用seeder 完成。

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

\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',
                ),
        ));

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

方案

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

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

这两种方法都可以。

SQL文件直接导入

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

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

DB::unprepared(file_get_contents('path/data.sql'));

Seeder填充

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

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

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

而后,我们就可以使用artisan db:seed --class=YourTableSeeder 来指定填充。

感谢你能够认真阅读完这篇文章,希望小编分享的“Laravel怎样填充SQL数据”这篇文章对大家有帮助,同时也希望大家多多支持创新互联网站建设公司,,关注创新互联行业资讯频道,更多相关知识等着你来学习!


分享标题:Laravel怎样填充SQL数据-创新互联
文章来源:http://cdkjz.cn/article/hejpp.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220