【发布时间】:2016-07-03 06:35:21
【问题描述】:
我正在尝试使用外键为表播种,但我不知道如何告诉模型从已经存在的数据中随机提取值。
模型工厂
$factory->define(App\Vendor::class, function(Faker\Generator $faker) {
return [
'name' => $faker->company,
];
});
$factory->define(App\Device::class, function(Faker\Generator $faker) {
return [
'vendor' => ,
'name' => $faker->company,
'mac_address' => $faker->macAddress,
];
});
种子
VendorTableSeeder
public function run()
{
factory(App\Vendor::class, 150)->create();
}
DeviceTableSeeder
public function run()
{
factory(App\Device::class, 50)->create();
}
DataSeeder
$this->call(VendorTableSeeder::class);
$this->call(DeviceTableSeeder::class);
我在设备表之前播种供应商表,并希望从现有供应商中填充随机供应商 ID。
'vendor' => 'factory::App\Vendor'
但我得到了
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: foreign key constraint fails
看起来插入试图插入factory::App\Vendor 作为供应商列的字符串。我正在尝试弄清楚如何从现有供应商那里获得它。
【问题讨论】:
标签: laravel-5 factory laravel-seeding