Laravel - 数据填充
数据填充-start
-
生成填充器:
php artisan make:seeder UsersTableSeeder
-
具体思路:这里我们使用的是模型工厂来填充数据,首先需要在ModelFactory.php中添加字段,然后再从 UsersTableSeeder.php中来规定要创建的规则。
-
在
database/factories/ModelFactory.php
中新填充一个字段(username):<?php /* |-------------------------------------------------------------------------- | Model Factories |-------------------------------------------------------------------------- | | Here you may define all of your model factories. Model factories give | you a convenient way to create models for testing and seeding your | database. Just tell the factory how a default model should look. | */ $factory->define(App\User::class, function (Faker\Generator $faker) { return [ 'name' => $faker->name, 'username' => $faker->firstName, 'email' => $faker->safeEmail, 'password' => bcrypt(str_random(10)), 'remember_token' => str_random(10), ]; });
-
在
database/seeds/UsersTableSeeder.php
中书写要填充的数据和规则:<?php use Illuminate\Database\Seeder; class UsersTableSeeder extends Seeder { public function run() { //生成一条数据,数组中为要生成的信息 $admin = factory('App\User')->create([ 'name' => 'gdc', 'email' => 'phpsix@126.com', 'password' => bcrypt('123456') ]); //生成三条数据,密码为123456,其他随机 $users = factory('App\User',3)->create([ 'password' => bcrypt('123456') ]); } }
-
在
database/factories/DatabaseSeeder.php
类中,你可以使用call方法执行额外的填充类。使用call方法允许你将数据库填充分解成多个文件,这样单个填充器类就不会变得无比巨大,只需简单将你想要运行的填充器类名传递过去即可。<?php use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder { public function run() { $this->call(UsersTableSeeder::class); } }
-
运行填充器:
php atrisan db:seed(运行填充器)
数据填充-end
本作品采用《CC 协议》,转载必须注明作者和本文链接
老郭博客:laughing:
个人博客地址:www.phpsix.com
推荐文章: