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中很有用。这正是我所希望的,如果它解决了你的问题,请考虑接受答案。