-
生成填充器:
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(執行填充器)
老郭部落格:laughing:
個人部落格地址:https://www.phpsix.com