为什么 php artisan 迁移 fresh --seed 无法正常工作

问题描述 投票:0回答:2

嗨,开发人员,我对 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
            ]);

        }
        

    }
}
laravel
2个回答
2
投票

默认情况下,

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 数据库播种文档


0
投票

通过

检查现有的播种命令也可能有用
php artisan list
php artisan <Command_Name>
© www.soinside.com 2019 - 2024. All rights reserved.