laravel - 如何在 Laravel 中使用 faker 为相关模型生成/创建多个记录?
问题描述
我想生成与一个用户相关的 10 个产品。我如何在 Laravel 中使用伪造者来做到这一点?这是我的模型:
用户型号:
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 个产品并使用在用户模型上定义的关系创建它们。
推荐阅读
- mysql - Mysql连接表并选择记录在左连接中不退出时
- complex-event-processing - Esper/NEsper EPL 事件声明
- json - 不是类型 '(String, dynamic) => MapEntry 的子类型
'的'转换') - java - 为什么基于 Spring SAML 的应用程序仅在远程服务器上抛出异常?
- javascript - 嗨,我正在使用 R Shiny 中的一个函数来用一种方法格式化数字,但在需要时返回 0 到 0.0K - 或 NA
- selenium - 机器人框架循环验证排序
- python - 无法获得信号以连接到 PyQT5 中的插槽
- node.js - 如何从 MongoDB 的日期范围中展开日期?
- java - 未能应用插件“com.google.protobuf”
- https - 验证错误:num=20:无法获取本地颁发者证书(openssl)