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写入
随机内容可以研究一下然后在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个评论。