每當我需要為我的專案創建新的工廠和播種機時,無論是學習練習、業餘愛好專案還是實際應用程序,我經常會回到Laravel 文件(每次都做同樣的動作感到無聊)。為了讓這個過程變得簡單,我決定建立一個指南,我可以在需要時參考,從而節省時間並避免搜尋大量文件。如果本指南對其他人有幫助,那就太好了!
假設我們有一個用戶/帖子關係,這意味著每個用戶可以有一個或多個帖子,並且每個帖子都屬於一個用戶。
什麼是工廠?
Laravel 中的工廠是一個為應用程式產生測試資料的類別。這對於本地開發和暫存環境很有用,提供了許多好處。 Laravel 允許您為您擁有的每個模型創建一個工廠。
什麼是播種者?
Laravel 中的 Seeders 用於使用種子類別向資料庫填充數據,這對於測試目的特別有用。
生成新工廠
要建立新工廠,請執行以下命令:
php artisan make:factory PostFactory
您將在database/factories目錄下找到您的工廠類別。這是定義工廠的範例:
public function definition(): array { return [ 'title' => $this->faker->sentence, 'content' => $this->faker->paragraph, 'user_id' => User::factory(), ]; }
產生播種機
要建立新的播種器,請執行下列命令:
php artisan make:seeder PostSeeder
您將在database/seeders目錄下找到seeder類別。以下是此類中 run 函數的範例:
public function run(): void { Post::factory() ->count(20) ->create(); }
在同一目錄中,您將找到DatabaseSeeder 類別。確保它包含您所有的播種者:
public function run(): void { // \App\Models\User::factory(10)->create(); // \App\Models\User::factory()->create([ // 'name' => 'Test User', // 'email' => '[email protected]', // ]); $this->call([ PostSeeder::class, .., .. ]); }
運行遷移並為資料庫設定種子
首先,運行資料庫遷移:
php artisan 遷移
然後,為資料庫播種:
php artisan db:seed
現在您已經有測試數據了。享受!
最初發佈在我的部落格上!
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3