Laravel提供的填充类(seed),可让你们很容易的实现填充测试数据到数据库。全部的填充类都位于database/seeds目录。填充类的类名彻底由你自定义,但最好仍是遵循必定的规则,好比可读性,例如UsersTableSeeder等。javascript
下面以建立学生表的填充为例,来介绍Laravel中数据填充的使用。(点击查看演示数据表结构)php
php artisan make:seeder StudentsTableSeeder
将会在database/seeds目录下生成一个StudentsTableSeeder.php填充文件。css
打开该文件后,有一个StudentsTableSeeder的类,里面有个run()方法。在run方法中能够插入任何你想插入的数据,可使用查询构建器手动插入数据,也可使用 Eloquent 模型工厂。html
下面以使用查询构造器为例,完整代码以下:java
<?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], ]); } }
php artisan db:seed --class=StudentsTableSeeder
使用批量填充文件,须要在database/seeds/DatabaseSeeder类的run()方法中,将你想要运行的填充器类名传递过去便可:git
public function run() { $this->call(StudentsTableSeeder::class); // $this->call(UsersTableSeeder::class); // 以及其它填充类 }
而后执行以下命令:github
php artisan db:seed
这样既可添加测试数据到students表中。数据库
本文首发于马燕龙我的博客,欢迎分享,转载请标明出处。
马燕龙我的博客:http://www.mayanlong.com
马燕龙我的微博:http://weibo.com/imayanlong
马燕龙Github主页:https://github.com/yanlongmamarkdown