【问题标题】:How to generate/create multiple records for a related model using fakers in Laravel?如何在 Laravel 中使用 faker 为相关模型生成/创建多个记录?
【发布时间】:2019-05-14 01:21:34
【问题描述】:

我想为一位用户生成 10 个产品。我如何在 Laravel 中使用伪造者来做到这一点?这是我的模型:

用户模型:

    class User 
    {
        public function product()
        {
            return $this->hasMany('App\Product');
        }
    }

产品型号:

    class Product
    {
        public function user()
        {
            return $this->belongsTo('App\User');
        }
    }

【问题讨论】:

标签: laravel


【解决方案1】:

我会使用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 个产品并使用在用户模型上定义的关系创建它们。

【讨论】:

    猜你喜欢
    • 2018-09-10
    • 2023-03-05
    • 1970-01-01
    • 2021-10-26
    • 2021-08-23
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    相关资源
    最近更新 更多