美文网首页
Laravel添加测试数据

Laravel添加测试数据

作者: 地狱咆哮Zzzzz | 来源:发表于2016-01-08 16:32 被阅读2991次

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

    相关文章

      网友评论

          本文标题:Laravel添加测试数据

          本文链接:https://www.haomeiwen.com/subject/hcofkttx.html