首先,您需要在Customer 模型上设置relationship。我假设 Customer 模型与 one-to-many 与 CustomerAddress 和 CustomerPurchase 模型有关系。
<?php
// app/Customer.php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Customer extends Model
{
public function addresses()
{
return $this->hasMany(CustomerAddress::class);
}
public function purchases()
{
return $this->hasMany(CustomerPurchase::class);
}
}
接下来,您需要定义一个model factory。
<?php
// database/factories/CustomerFactory.php
use Faker\Generator as Faker;
$factory->define(App\Customer::class, function (Faker $faker) {
return [
'name' => $faker->name,
];
});
$factory->define(App\CustomerAddress::class, function (Faker $faker) {
return [
'address' => $faker->streetAddress,
];
});
$factory->define(App\CustomerPurchase::class, function (Faker $faker) {
return [
'item' => $faker->word,
'amount' => $faker->randomFloat(2, 10, 200),
];
});
现在您所要做的就是使用这些模型工厂在数据库中植入随机记录。你仍然可以使用 Eloquent 集合和 relationship 就好了:
<?php
// database/seed/DatabaseSeeder.php
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
factory(App\Customer::class, 10)->create()->each(function ($customer) {
$customerAddresses = factory(App\CustomerAddress::class, 2)->make();
$customerPurchases = factory(App\CustomerPurchase::class, 5)->make();
$customer->addresses()->saveMany($customerAddresses);
$customer->purchases()->saveMany($customerPurchases);
});
}
}
希望这能给你一些想法。