首页 > 解决方案 > 如何创建带有用于测试的图像的工厂

问题描述

我需要创建一个为测试创建图像的工厂。工厂应创建图像并将其保存在存储设备中,测试后应擦除所有内容。

我怎样才能做到这一点 ?

我现在想的是在工厂中将字段设置为null,然后使用该afterCreating方法手动保存图像,但它必须是一种更好的方法来做到这一点吗?

我想要实现的是:

factory(Category::class)->create();

这将生成所有图像。

$faker->image 不再起作用,因为 LoremPixel (提供者)在大多数情况下确实很慢或很慢。

标签: laravellaravel-factory

解决方案


您可以使用 $faker->image.

这是一个例子

use Faker\Generator as Faker; 
$factory->define(Product::class, function (Faker $faker) {
    return [

        'amount' => $faker->randomFloat(2, 0, 10000),
        'image' => $faker->image('public/storage/images',640,480, null, false),

    ];
});

推荐阅读