」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 創建 Laravel 工廠和播種機的快速指南

創建 Laravel 工廠和播種機的快速指南

發佈於2024-07-29
瀏覽:387

A Quick Guide to Creating Laravel Factories and Seeders

每當我需要為我的專案創建新的工廠和播種機時,無論是學習練習、業餘愛好專案還是實際應用程序,我經常會回到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

現在您已經有測試數據了。享受!

最初發佈在我的部落格上!

版本聲明 本文轉載於:https://dev.to/bn_geek/a-quick-guide-to-creating-laravel-factories-and-seeders-3o09?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 您如何在Laravel Blade模板中定義變量?
    您如何在Laravel Blade模板中定義變量?
    在Laravel Blade模板中使用Elegance 在blade模板中如何分配變量對於存儲以後使用的數據至關重要。在使用“ {{}}”分配變量的同時,它可能並不總是最優雅的解決方案。 幸運的是,Blade通過@php Directive提供了更優雅的方法: $ old_section =...
    程式設計 發佈於2025-05-01
  • 如何將可編輯DIV設計成文本框樣式?
    如何將可編輯DIV設計成文本框樣式?
    進行編輯類似於文本字段解決此問題,可以使用CSS樣式將可編輯的div轉換為標准文本輸入字段的外觀。幸運的是,現代瀏覽器提供了特定的CSS屬性,可以模仿本機文本輸入控件的外觀。 CSS樣式類似於文本字段,類似於字段輸入 { 保證金頂:5px; 寬度:400px; }OutputThe r...
    程式設計 發佈於2025-05-01
  • Android如何向PHP服務器發送POST數據?
    Android如何向PHP服務器發送POST數據?
    在android apache httpclient(已棄用) httpclient httpclient = new defaulthttpclient(); httppost httppost = new httppost(“ http://www.yoursite.com/script.p...
    程式設計 發佈於2025-05-01
  • Python元類工作原理及類創建與定制
    Python元類工作原理及類創建與定制
    python中的metaclasses是什麼? Metaclasses負責在Python中創建類對象。就像類創建實例一樣,元類也創建類。他們提供了對類創建過程的控制層,允許自定義類行為和屬性。 在Python中理解類作為對象的概念,類是描述用於創建新實例或對象的藍圖的對象。這意味著類本身是使用...
    程式設計 發佈於2025-05-01
  • PHP未來:適應與創新
    PHP未來:適應與創新
    PHP的未來將通過適應新技術趨勢和引入創新特性來實現:1)適應云計算、容器化和微服務架構,支持Docker和Kubernetes;2)引入JIT編譯器和枚舉類型,提升性能和數據處理效率;3)持續優化性能和推廣最佳實踐。 引言在編程世界中,PHP一直是網頁開發的中流砥柱。作為一個從1994年就開始發展...
    程式設計 發佈於2025-05-01
  • 如何為PostgreSQL中的每個唯一標識符有效地檢索最後一行?
    如何為PostgreSQL中的每個唯一標識符有效地檢索最後一行?
    postgresql:為每個唯一標識符在postgresql中提取最後一行,您可能需要遇到與數據集合中每個不同標識的信息相關的信息。考慮以下數據:[ 1 2014-02-01 kjkj 在數據集中的每個唯一ID中檢索最後一行的信息,您可以在操作員上使用Postgres的有效效率: id dat...
    程式設計 發佈於2025-05-01
  • 在Ubuntu/linux上安裝mysql-python時,如何修復\“ mysql_config \”錯誤?
    在Ubuntu/linux上安裝mysql-python時,如何修復\“ mysql_config \”錯誤?
    mysql-python安裝錯誤:“ mysql_config找不到”“ 由於缺少MySQL開發庫而出現此錯誤。解決此問題,建議在Ubuntu上使用該分發的存儲庫。使用以下命令安裝Python-MysqldB: sudo apt-get安裝python-mysqldb sudo pip in...
    程式設計 發佈於2025-05-01
  • 在PHP中如何高效檢測空數組?
    在PHP中如何高效檢測空數組?
    在PHP 中檢查一個空數組可以通過各種方法在PHP中確定一個空數組。如果需要驗證任何數組元素的存在,則PHP的鬆散鍵入允許對數組本身進行直接評估:一種更嚴格的方法涉及使用count()函數: if(count(count($ playerList)=== 0){ //列表為空。 } 對...
    程式設計 發佈於2025-05-01
  • 如何在GO編譯器中自定義編譯優化?
    如何在GO編譯器中自定義編譯優化?
    在GO編譯器中自定義編譯優化 GO中的默認編譯過程遵循特定的優化策略。 However, users may need to adjust these optimizations for specific requirements.Optimization Control in Go Compi...
    程式設計 發佈於2025-05-01
  • 在JavaScript中如何獲取實際渲染的字體,當CSS字體屬性未定義時?
    在JavaScript中如何獲取實際渲染的字體,當CSS字體屬性未定義時?
    Accessing Actual Rendered Font when Undefined in CSSWhen accessing the font properties of an element, the JavaScript object.style.fontFamily and objec...
    程式設計 發佈於2025-05-01
  • 如何使用PHP將斑點(圖像)正確插入MySQL?
    如何使用PHP將斑點(圖像)正確插入MySQL?
    essue VALUES('$this->image_id','file_get_contents($tmp_image)')";This code builds a string in PHP, but the function call fil...
    程式設計 發佈於2025-05-01
  • CSS強類型語言解析
    CSS強類型語言解析
    您可以通过其强度或弱输入的方式对编程语言进行分类的方式之一。在这里,“键入”意味着是否在编译时已知变量。一个例子是一个场景,将整数(1)添加到包含整数(“ 1”)的字符串: result = 1 "1";包含整数的字符串可能是由带有许多运动部件的复杂逻辑套件无意间生成的。它也可以是故意从单个真理...
    程式設計 發佈於2025-05-01
  • 為什麼Microsoft Visual C ++無法正確實現兩台模板的實例?
    為什麼Microsoft Visual C ++無法正確實現兩台模板的實例?
    The Mystery of "Broken" Two-Phase Template Instantiation in Microsoft Visual C Problem Statement:Users commonly express concerns that Micro...
    程式設計 發佈於2025-05-01
  • 如何將多種用戶類型(學生,老師和管理員)重定向到Firebase應用中的各自活動?
    如何將多種用戶類型(學生,老師和管理員)重定向到Firebase應用中的各自活動?
    Red: How to Redirect Multiple User Types to Respective ActivitiesUnderstanding the ProblemIn a Firebase-based voting app with three distinct user type...
    程式設計 發佈於2025-05-01
  • 按特定順序多值排序數據庫記錄方法
    按特定順序多值排序數據庫記錄方法
    按特定順序的多值排序數據庫記錄 假設您有一個表,其中包含一個索引鍵和一個非索引字段 x_field。您需要查找具有特定值的所有記錄並返回它們,並根據特定順序中的多個值對結果進行排序。 例如,如果您有以下表格: idx_field123a124a125a126b127f128b129a130x13...
    程式設計 發佈於2025-05-01

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3