Laravel 中使用模型工廠 (Factory)

xiaosheng發表於2020-05-18
  • 繼續水的一天

  • 使用模型工廠Factory來填充資料

    1. 生成對應資料表的模型檔案
      php artisan make:model Models/模型名,一般為單數形式
    2. 生成模型工廠檔案
      php artisan make:factory 工廠名,工廠名一般是模型名稱+Factory,大駝峰命名,如ManagerFactory
      <?php
      // 引入模型檔案
      use App\Models\Manager;
      use Faker\Generator as Faker;
      // 修改為指定的模型
      $factory->define(Manager::class, function (Faker $faker) {
        return [
            'username' => $faker->name,
            'password' => bcrypt('123456'),
            'gender' => rand(1,3),
            'mobile' => $faker->phoneNumber,
            'email' => $faker->unique()->email,
            'role_id' => rand(1,6),
            'created_at' => date('Y-m-d Hs',time()),
            'status' => rand(1,2)
        ];
      });
    1. 生成Seeder檔案
      php artisan make:seeder ManagerSeeder

      <?php
      // 引入模型檔案
      use \App\Models\Manager;
      use Illuminate\Database\Seeder;
      
      class ManagerTableSeeder extends Seeder
      {
         public function run()
         {
             // 生成10條測試資料
             $managers = factory(Manager::class)->times(10)->make();
             // 新增到資料庫
             Manager::insert($managers->toArray());
         }
      }
    2. 執行填充
      php artisan make:refresh 重置資料庫(可以不用這一步)
      php artisan db:seed ---class=ManagerTableSeeder 執行資料填充

  • 注 :

    如果想要填充的資料本土化,則需要在config/app.php檔案中的faker_locale選項設定為自己想要的語言(前提是laravel中已經安裝了該語言),如漢語則可以設定為 faker_locale = 'zh_CN'


本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章