嗨,开发人员,我对 php artisan migrate:refresh --seed VS php artisan db:seed 有疑问,我只是想问,因为我在 php artisan migrate:refresh --seed 上遇到问题,但是当我使用php artisan db::seed 它工作正常
现在我在播种机上创建的数据没有播种到表中。我不知道问题出在哪里
播种:VehicleModelsSeeder
播种:VehicleModelsSeeder(0 秒)
这是我的车辆模型播种机课程
<?php
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;
use App\Vehicle;
use App\VehicleModel;
class VehicleModelsSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
//
$vehicles = Vehicle::all();
foreach($vehicles as $vehicles_data) {
VehicleModel::forceCreate([
'name' => Str::random(5),
'vehicle_id' => $vehicles_data->id
]);
}
}
}
默认情况下,
db:seed
命令运行Database\Seeders\DatabaseSeeder
类。
有两种解决方案:
1。您需要在默认播种器的 run 方法中调用其他播种器。
database/seeders/DatabaseSeeder.php
public function run()
{
$this->call([
VehicleModelsSeeder::class
]);
}
然后:
php artisan migrate:refresh --seed
2。您可以使用
--class
标志指定要运行的播种器,但在这种情况下,您需要分别运行 refresh
和 migrate
命令:
php artisan migrate:refresh
php artisan db:seed --class:VehicleModelsSeeder
更多信息:Laravel 数据库播种文档
通过
检查现有的播种命令也可能有用php artisan list
php artisan <Command_Name>