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