我想生成与一个用户关联的10个产品。我如何使用Laravel中的fakers做到这一点?这是我的模型:
用户型号:
class User
{
public function product()
{
return $this->hasMany('App\Product');
}
}
产品型号:
class Product
{
public function user()
{
return $this->belongsTo('App\User');
}
}
我会使用php artisan make:factory ProductFactory
创建一个ProductFactory,这应该创建一个类如下的类:
$factory->define(Product::class, function (Faker $faker) {
return [
//
];
});
在要返回的数组中,您可以分配属性,例如:
$factory->define(Product::class, function (Faker $faker) {
return [
'name' => $faker->name,
'description' => $faker->text,
];
});
然后,要创建分配给该用户的多个产品,您可以执行此操作。
//assuming you have the user instance in the $user variable
$user->products()->saveMany(
factory(Product::class)->times(10)->make()
);
这将使用工厂模拟10个产品并使用User模型上定义的关系创建它们。