Php Laravel将数据从播种机传递到工厂

Php Laravel将数据从播种机传递到工厂,php,laravel,Php,Laravel,我可以把数据从播种机传递到工厂吗 我正在构建一个需要在开始时添加数据的应用程序 //seeder public function run() { $id = 0 //can i pass this var to factory? factory(App\VehicleCategory::class, 16)->create(); } //factory $factory->define(VehicleCategory::class, function (Faker

我可以把数据从播种机传递到工厂吗

我正在构建一个需要在开始时添加数据的应用程序

//seeder
public function run()
{
    $id = 0 //can i pass this var to factory?
    factory(App\VehicleCategory::class, 16)->create();
}

//factory
$factory->define(VehicleCategory::class, function (Faker $faker) {

$data = [
    'MICRO','SEDAN','CUV','SUV','MINIVAN','HATCHBACK','ROADSTER',
    'PICKUP','VAN','COUP'TRUCK','BIG TRUCK'
];

return [
    //
    'name' => $data[$id]
];
$id++;

});
我试着绕过它,但它也不起作用

试图这样做,但它总是返回相同的id

$id = 0

$data = [
    'MICRO','SEDAN','CUV','SUV','MINIVAN','HATCHBACK','ROADSTER',
    'PICKUP','VAN','COUP'TRUCK','BIG TRUCK'
];


if(VehicleCategory::count() != 0){
    $id = VehicleCategory::latest()->first()->id;
}

return [
    //
    'name' => $data[$id]
];

我假设您想要生成除工厂中的名称之外的随机数据,只需在默认情况下保留工厂并覆盖“名称”

例如(使用默认的UserFactory Laravel附带)

然后在播种机里

公共函数运行()
{
$data=[‘微型’、‘轿车’、‘CUV’、‘SUV’、‘小型货车’、‘掀背车’、‘跑车’、‘皮卡’、‘货车’、‘政变’、‘卡车’、‘大卡车’];
foreach($data作为$name){
工厂(用户::类)->创建(['name'=>$name]);
}
}
结果

[
    {
        "id": 1,
        "name": "MICRO",
        "email": "maximillia94@example.net",
        "email_verified_at": "2019-09-29 17:49:36",
        "created_at": "2019-09-29 17:49:36",
        "updated_at": "2019-09-29 17:49:36"
    },
    {
        "id": 2,
        "name": "SEDAN",
        "email": "ziemann.bill@example.com",
        "email_verified_at": "2019-09-29 17:49:36",
        "created_at": "2019-09-29 17:49:36",
        "updated_at": "2019-09-29 17:49:36"
    },
    {
        "id": 3,
        "name": "CUV",
        "email": "don90@example.org",
        "email_verified_at": "2019-09-29 17:49:36",
        "created_at": "2019-09-29 17:49:36",
        "updated_at": "2019-09-29 17:49:36"
    },
    {
        "id": 4,
        "name": "SUV",
        "email": "dkoepp@example.net",
        "email_verified_at": "2019-09-29 17:49:36",
        "created_at": "2019-09-29 17:49:36",
        "updated_at": "2019-09-29 17:49:36"
    },
    {
        "id": 5,
        "name": "MINIVAN",
        "email": "laney.schaden@example.com",
        "email_verified_at": "2019-09-29 17:49:36",
        "created_at": "2019-09-29 17:49:36",
        "updated_at": "2019-09-29 17:49:36"
    },
    {
        "id": 6,
        "name": "HATCHBACK",
        "email": "herman.addison@example.net",
        "email_verified_at": "2019-09-29 17:49:36",
        "created_at": "2019-09-29 17:49:36",
        "updated_at": "2019-09-29 17:49:36"
    },
    {
        "id": 7,
        "name": "ROADSTER",
        "email": "thaddeus89@example.org",
        "email_verified_at": "2019-09-29 17:49:36",
        "created_at": "2019-09-29 17:49:36",
        "updated_at": "2019-09-29 17:49:36"
    },
    {
        "id": 8,
        "name": "PICKUP",
        "email": "eusebio32@example.net",
        "email_verified_at": "2019-09-29 17:49:36",
        "created_at": "2019-09-29 17:49:36",
        "updated_at": "2019-09-29 17:49:36"
    },
    {
        "id": 9,
        "name": "VAN",
        "email": "caleb77@example.net",
        "email_verified_at": "2019-09-29 17:49:36",
        "created_at": "2019-09-29 17:49:36",
        "updated_at": "2019-09-29 17:49:36"
    },
    {
        "id": 10,
        "name": "COUP",
        "email": "foster.kiehn@example.com",
        "email_verified_at": "2019-09-29 17:49:36",
        "created_at": "2019-09-29 17:49:36",
        "updated_at": "2019-09-29 17:49:36"
    },
    {
        "id": 11,
        "name": "TRUCK",
        "email": "ophelia62@example.net",
        "email_verified_at": "2019-09-29 17:49:36",
        "created_at": "2019-09-29 17:49:36",
        "updated_at": "2019-09-29 17:49:36"
    },
    {
        "id": 12,
        "name": "BIG TRUCK",
        "email": "elsie41@example.com",
        "email_verified_at": "2019-09-29 17:49:36",
        "created_at": "2019-09-29 17:49:36",
        "updated_at": "2019-09-29 17:49:36"
    }
]

希望这有帮助

您好,欢迎来到Stack Overflow,您是否考虑过将
$id=0
放在工厂而不是播种机中?我不明白为什么它在SeeldRead中很有用。这正是我所希望的,如果它解决了你的问题,请考虑接受答案。