轻松学Laravel6数据填充之方式二模型工厂填充

作者: 温新

分类: 【Laravel】

阅读: 4512

时间: 2019-09-10 14:03:05

模型工厂基于 Eloquent 模型类通过工厂方法进行大批量填充数据。**如要使用模型工厂为 users 表进行数据填充,那么就必须有一个 Users 模型类与之对应。**为了更方便理解模型工厂填充数据,下面将为 goods 表进行数据填充。

1)创建数据表模型

$ php artisan make:model Goods

Ps:1)该命令将在 app 目录下生成 Goods 模型类文件;2)生成 Goods 模型类之后,只要数据表字段符合Laravel6 规则,就不用管。

2)创建模型工厂(注意语义化、明确化)

$ php artisan make:factory GoodsFactory

Ps:该命令会在 database/factories 目录下生成对应的工厂文件

3)编写工厂文件

image/20190910/1568124118687691.png

Ps:注意点:通过命令生成工厂文件,命名空间与类文件名可能出现不正确的情况,有,则需要进行更改。

4)compser 重新生成自动加载(不执行这一步也能生成成功)

$ composer dump-autoload

5)创建 seeder 填充类

$ php artisan make:seeder GoodsTableSeeder

6)编写通过 seeder 生成的填充文件,在 run()方法中调用模型工厂填充数据

image/20190910/1568124127314727.png

7)执行填充数据

$ php artisan db:seed --class=GoodsTableSeeder

4.3、方式二、模型工厂数据填充的另外的一些方法

此步骤接着4.2的步骤写,这是另外的方法,当做补充,根据个人的代码风格进行使用,但是一定要语义化,让别人一看就知道这个文件是干嘛的。

方式一:

5)database/seeds 目录下的 DatabaseSeeder.php 文件 run() 方法中编写模型填充

$this->call(GoodsTableSeeder::class);

Ps:此方式通过 call() 方法进行数据填充,一次只能填充一条数据。

方式二:

5)通过全局 factory() 方法进行 N 条数据填充

factory(\App\Goods::class, 100)->create();

Ps:一次填充100条数据

6)执行填充命令

命令:php artisan db:seed // 执行所有填充文件

命令:php artisan db:seed --class=填充文件 // 指定单一独立的填充文件进行填充

Ps:如 php artisan db:seed --class=DatabaseSeeder

作者语:

到这里数据填充完成了。温习完成及对笔记的整理,所花费的时间比较长。对比于官方文档与中文文档的不易理解及逻辑乱的现象(毕竟是外国人写的),我相信,这篇文章对于过程及执行顺序都进行了良好的整理,并对实际发生的错误进行了Ps说明,因此,你不需要看繁琐而又难懂的Laravel文档,本篇文章就足以让你写出数据填充功能来。

每一步都是我进行了实际的测试,保证了每一步骤的无误可运行。由于个人精力及能力有限,我会尽在以后的笔记中写出实际的用途与场景。我期待和优秀的你一起进行学习交流!我是夕阳何处寻。

2019年9月10日 01点44分

夕阳何处寻

请登录后再评论