如何在没有模型的情况下定义 Laravel 工厂?

mut*_*ity 5 testing laravel

我正在测试控制器,并且基本上想定义一个factory来表示来自互联网的帖子。

这篇文章在控制器中分为几个模型。

我正在对整个控制器进行功能测试,那么如何创建一个factory没有模型来代表前端帖子的模型?

看起来factory是这样制作的:

$factory->define(App\Models\User::class, function (Faker\Generator $faker) {

static $password;

return [
    'name' => $faker->name,
    'email' => $faker->unique()->safeEmail,
    'password' => $password ?: $password = bcrypt('secret'),
    'remember_token' => str_random(10),
    ];
});
Run Code Online (Sandbox Code Playgroud)

App\Models\User::class是扔给我的。我想要一个与User模型或任何模型无关的通用模型。

Red*_*ers 6

您必须在播种机中生成创建查询构建器实例。因此,例如,您希望气球表中的示例数据:

DB::table('table_name')->insert(
  [
   'name' => $faker->name, 
   'email' => $faker->unique()->safeEmail, 
   'password' => $password ?: $password = bcrypt('secret'),
   'remember_token' => str_random(10)
 ]
);
Run Code Online (Sandbox Code Playgroud)

您必须为要插入给定表的每一行执行此操作。你不会担心模型工厂,因为没有模型。