:::

11. 建立商品測試資料

  1. 我們可以建立一個模型工廠, 使用 Artisan 命令 make:factory 並指定模型來快速建立模型工廠:
    php artisan make:factory ProductFactory --model=Product
  2. 這個新的模型工廠將被放置在 /專案/database/factories 目錄中。
    <?php
    
    /* @var $factory \Illuminate\Database\Eloquent\Factory */
    
    use App\Product;
    use Faker\Generator as Faker;
    
    $factory->define(Product::class, function (Faker $faker) {
        return [
            //
        ];
    });
    
  3. 修改一下內容,讓工廠自動產生商品的圖片及內容:
    <?php
    
    /* @var $factory \Illuminate\Database\Eloquent\Factory */
    
    use App\Product;
    use Faker\Generator as Faker;
    
    $factory->define(Product::class, function (Faker $faker) {
        return [
            'title'       => $faker->company,
            'description' => $faker->realText(100),
            'image'       => $faker->imageUrl,
            'on_sale'     => true,
            'price'       => $faker->randomNumber(4),
        ];
    });
    
  4. 標題部份一般都用$faker->word居多,不過若要顯示中文,$faker->word並不支援,所以此處改為$faker->company,以便後續可以產出中文測試語句。
  5. 描述部份也是,成用的有$faker->sentence$faker->paragraph$faker->text,不過一樣不支援中文,所以,這裡改用$faker->realText來產生中文句子。
  6. 其他常用的格式可以參考這裡:https://github.com/fzaninotto/Faker#formatters
  7. 這裡有各種方法的使用範例:https://www.cnblogs.com/love-snow/articles/7655450.html
  8. 若欲產生中文資料,請修改\專案\config\app.php,修改其faker_locale的設定值即可。
    'faker_locale'    => 'zh_TW',
  9. 我們可以利用tinker來測試一下(要離開tinker請輸入exit
    php artisan tinker
  10. 先建立一個師品測試資料試試(請注意,內容是毫無意義的,只要測試的格式正確即可)
    factory(App\Product::class)->make()
  11. 然後建立5題
    factory(App\Product::class,5)->make()
  12. 建立5題並指定exam_id為1,然後存入資料庫:
    factory(App\Product::class,5)->create()
  13. 可以利用此方式來建立大量測設內容,若工廠內容有改變,請離開tinker後再重新進入執行。

 

到GitHub觀看此單元程式異動

 


:::

書籍目錄

展開 | 闔起

快速登入


https%3A%2F%2Fcampus-xoops.tn.edu.tw%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbdsn%3D1425%26tbsn%3D43

計數器

今天: 5005500550055005
昨天: 2489248924892489
總計: 8026987802698780269878026987802698780269878026987