問題是我的資料庫沒有php artisan db:seed在我的 laravel 專案中播種。沒有錯誤顯示并且在命令之后我的資料庫只是空的但php artisan db:seed顯示成功結果。
這是我在 laravel 專案中 database/seeders 檔案夾下 DatabaseSeeder.php 檔案中的運行方法。
$this->call([
ItemBrandSeeder::class,
ItemDepartmentSeeder::class,
ItemUnitSeeder::class,
CategorySeeder::class,
ItemSeeder::class
]);
這是我在 Laravel 專案的 database/seeders 檔案夾下 ItemBrandSeeder.php 中的運行方法。
ItemBrandFactory::times(100);
這是我在我的 laravel 專案的 database/factories 檔案夾下的 ItemBrandFactory.php 中的定義方法。
return [
'stvalue1' => $this->faker->randomElement(['BOX', 'PCS', 'NOS', 'PACK']),
'stdescription' => $this->faker->text('30'),
'stvalue2' => $this->faker->randomElement(['Countable', 'Measurable']),
'stflag' => "UNIT"
];
這是我在 Laravel 專案的 database/seeders 檔案夾下 ItemDepartmentSeeder.php 中的運行方法。
ItemDepartmentFactory::times(25);
這是我在我的 laravel 專案的 database/factories 檔案夾下的 ItemDepartmentFactory.php 中的定義方法。
return [
'stCategory' => $this->faker->text(25),
'sttype' => ['department']
];
這是我在 Laravel 專案的 database/seeders 檔案夾下 ItemUnitSeeder.php 中的運行方法。
DB::connection("dynamic_db")->table('tblgeneral')->insert([
[
'stflag' => 'UNIT',
'stdescription' => "Pieces",
'stvalue1' => "PCS",
'stvalue2' => "Countable"
],
[
'stflag' => 'UNIT',
'stdescription' => "Box",
'stvalue1' => "BOX",
'stvalue2' => "Countable"
],
[
'stflag' => 'UNIT',
'stdescription' => "Bar",
'stvalue1' => "BAR",
'stvalue2' => "Measurable"
],
[
'stflag' => 'UNIT',
'stdescription' => "Nos",
'stvalue1' => "NOS",
'stvalue2' => "Measurable"
],
[
'stflag' => 'UNIT',
'stdescription' => "Feet",
'stvalue1' => "FT",
'stvalue2' => "Measurable"
],
]);
ItemUnitSeeder 沒有工廠類這是我在我的 laravel 專案的 database/seeders 檔案夾下 CategorySeeder.php 中的運行方法。
CategoryFactory::times(50);
這是我在 laravel 專案的 database/factories 檔案夾下 CategoryFactory.php 中的定義方法。
return [
'stCategory' => $this->faker->text(25),
'sttype' => ['category']
];
這是我在 Laravel 專案的 database/seeders 檔案夾下 ItemSeeder.php 中的運行方法。
ItemFactory::times(1000);
這是我在我的 laravel 專案的 database/factories 檔案夾下的 ItemFactory.php 中的定義方法。
$edate = array(\Carbon\Carbon::create('1973-09-17 04:30:43'), \Carbon\Carbon::now())[rand(0, 1)];
$unit2 = array('na', 1, 2, 3, 4, 5)[rand(0, 5)];
$purchasePrice = $this->faker->numberBetween(200, 10000);
$retailPrice = $purchasePrice ($this->faker->numberBetween(5, 40) / 100 * $purchasePrice);
$minPrice = $retailPrice $this->faker->numberBetween(0, 50);
$supplierGivenDiscount = $this->faker->numberBetween(0, 10);
$retailDiscount = $this->faker->numberBetween(0, 5);
$unit2Def = $this->faker->numberBetween(2, 12);
$unit2Price = ($retailPrice / $unit2Def) / 100 * rand(1, 50);
$wholesalePrice = $retailPrice - $this->faker->numberBetween(0, 5) / 100 * $retailPrice;
$wholesaleDiscount = $wholesalePrice - $this->faker->numberBetween(0, 3) / 100 * $wholesalePrice;
return [
'stItemCode' => getSerialNo('item'),
'stDescription' => $this->faker->text(100),
'stCategory' => rand(0, 50),
'stUnit1' => rand(0, 5),
'stBrand' => rand(0, 100),
'stDepartment' => rand(0, 25),
'stDescription2' => $this->faker->text(200),
'daEdate' => $edate,
'tiContaminable' => $edate->eq(\Carbon\Carbon::create('1973-09-17 04:30:43')),
'dbMinPrice' => $minPrice,
'dbPurchasePrice' => $purchasePrice,
'dbSupplierGivenDiscount' => $supplierGivenDiscount,
'dbRetailPrice' => $retailPrice,
'dbRetailPriceDiscount' => $retailDiscount,
'stShelf' => rand(0, 30),
'siItemType' => rand(0, 3),
'stUnit2' => $unit2,
'dbUnit2Price' => $unit2 != 'na' ? $unit2Price : 0,
'dbUnit2Def' => $unit2 != 'na' ? $unit2Def : 0,
'dbWholeSalesPrice' => $wholesalePrice,
'dbWholeSalesPriceDiscount' => $wholesaleDiscount,
'dbReorderLevel' => 0,
'stBranch' => Branch::all()->toArray()[rand(0, Branch::count())]['id'],
'stWebUpdateStatus' => 1,
];
控制臺中的命令和輸出

但是在我的資料庫中,沒有資料播種我的資料庫只是空的。
如果您想知道為什么我使用 DB 類在 ItemUnitSeeder.php 檔案中創建 ItemUnits,因為我只想要 5 個單位,所以我想為那個無用的工廠創建一個工廠。
類別工廠、專案品牌工廠和專案部門工廠使用相同的表名“tblCategory”,唯一不同的是“sttype”欄位。如果“sttype”設定為“類別”而不是其類別,如果它設定為“品牌”而不是其品牌等等。
uj5u.com熱心網友回復:
您的代碼是正確的,沒有問題,但我認為您的問題在這里: 而不是times()
使用這樣的因素:
Item::factory()->count(1000)->create();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/462680.html
上一篇:指定時間時Cron作業不作業
