Laravel 5.2 教程 - 数据填充

一、简介

Laravel提供的填充类(seed),可以让大家很容易的实现填充测试数据到数据库。所有的填充类都位于database/seeds目录。填充类的类名完全由你自定义,但最好还是遵循一定的规则,比如可读性,例如UsersTableSeeder等。

下面以创建学生表的填充为例,来介绍Laravel中数据填充的使用。(点击查看演示数据表结构

二、建立填充文件

1. 使用Artisan的 make:seeder 命令生成students表的填充文件:

php artisan make:seeder StudentsTableSeeder

将会在database/seeds目录下生成一个StudentsTableSeeder.php填充文件。

2. 插入填充代码

打开该文件后,有一个StudentsTableSeeder的类,里面有个run()方法。在run方法中可以插入任何你想插入的数据,可以使用查询构建器手动插入数据,也可以使用 Eloquent 模型工厂。

下面以使用查询构造器为例,完整代码如下:

<?php

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;

class StudentsTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        // 使用查询构造器
        DB::table('students')->insert([
            ['name' => 'sean', 'age' => 18, 'sex' => 20],
            ['name' => 'chen', 'age' => 20, 'sex' => 30],
        ]);
    }
}

三、执行填充文件

1. 执行单个填充文件

php artisan db:seed --class=StudentsTableSeeder

2. 批量执行填充文件

使用批量填充文件,需要在database/seeds/DatabaseSeeder类的run()方法中,将你想要运行的填充器类名传递过去即可:

public function run()
{
    $this->call(StudentsTableSeeder::class);
    // $this->call(UsersTableSeeder::class); 
    // 以及其它填充类
}

然后执行如下命令:

php artisan db:seed

这样既可添加测试数据到students表中。


交友互动:

本文首发于马燕龙个人博客,欢迎分享,转载请标明出处。
马燕龙个人博客:https://www.mayanlong.com
马燕龙个人微博:http://weibo.com/imayanlong
马燕龙Github主页:https://github.com/yanlongma

标签: laravel

不错,不错,对我有帮助! 我要打赏他!GO ->

仅有一条评论

  1. 平凡 平凡

    很好的教程!

添加新评论