Laravel添加测试数据

前言:在开始测试功能的时候,我们需要大量的数据作为基础,如果数据量太小就可能有个别情况没考虑到,结果就是用户使用的时候才发现。可以自己写循环插入数据库,也可是使用laravel提供的方法插入数据库。

第一步:建表(生成迁移)

在laravel项目的根目录下执行 

php artisan make:migration create_articles_table --table=articles

--table=articles是建立的表名为articles

现在在项目根目录下的database文件下就会生成一个文件,2016_01_05_121154_create_article_table.php   

然后 执行命令 php artisan make:migrate 生成表。

建Model 执行php artisan make:model Article 在app文件夹下生成Article.php

设置属性protected $table = "articles";指定表

            protected $fillable = ['title','content','author','introdution'];设置批量填充

这部分可以来这里,点我


第二步:填充器

执行php artisan make:seeder ArticleTableSeeder

在database目录下会生成ArticleTableSeeder.php类

只有一个run()方法

use app\Article as Article;

写入Article::create([

'title'=>'你的生命有什么可能',

'author'=>'古典',

'introdution'=>'XXXXXXXXXX',

'content'=>'XXXXXXXXXXXXXXXXXXXX'

]);

现在可以执行php artisan db:seed  --class=ArticleTableSeeder 如果成功数据库里面就有了一条数据。

如果想给user、tag、article等等表同时添加数据,可以写好各自的seeder类,然后在seeds目录下的DatabaseSeeder.php的run方法里面写

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

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

.......

然后执行命令php artisan db:seed

这样就每张表都添加了数据。

想一张表同时添加N条数据?

在database目录下有个factories目录,ModelFactory.php写入

Laravel添加测试数据_第1张图片
随机内容可以研究一下


然后在ArticleTableSeeder.php 里面写 factory(app\Article::class,10)->create();

再执行 php artisan db:seed --class=ArticleTableSeeder

数据库里就会有10条。

有时候 手动添加类文件后,执行php artisan db:seed后会报找不到类的错误

可以执行php artisan dump-autoload 后再继续。


还有批量添加关联数据,比如两个表或者有中间表的,怎么批量添加???等学会了我再写~~~~

继续上面的......

这样就不用写CommentTableSeeder.php了,直接就会生成5篇文章和对应5篇文章的5个评论。

你可能感兴趣的:(Laravel添加测试数据)