【发布时间】:2018-08-26 00:50:33
【问题描述】:
我目前正在学习 Laravel 工厂及其工作原理。到目前为止,我发现它们非常有用!
我正在为企业创建目录,因此我正在尝试在开发过程中植入一些虚拟数据。
目前我已经得到它,所以它与用户一起创建了一个业务,但是现在它开始变得棘手,这就是我在这里发帖的原因。
对于业务,我还需要创建类别、位置、图像和联系人。我想它们都会以相同的方式工作,所以我只会询问类别。
基本上我想要做的是在创建业务时,我想每 10 个业务创建一个类别,因为这样我就可以像在现实生活中一样显示它们。
所以目前我有这个代码...
factory(App\Models\User::class, 50)->create()->each(function ($u) {
$u->business()->save(factory(App\Models\Business::class)->make());
});
这非常适合创建与用户关联的业务,但我应该将类别放在哪里?我必须在这里创建吗?并说每次有 10 的倍数然后创建一个类别?因为该类别无论如何都没有与用户相关联,所以我无法执行$u->categeory 之类的任何操作,我将不得不访问业务模型。
这是业务类别的工厂...
$factory->define(App\Models\BusinessCategory::class, function (Faker $faker) {
return [
'friendly_name' => $faker->word,
'slug' => ucfirst($faker->word)
]
});
提前致谢。
【问题讨论】:
-
每个企业都会有一个类别吗?我假设您希望每个企业都属于一个类别,但不是每个企业都有一个新类别(因此每约 10 个企业将共享同一个类别)。我的假设正确吗?或者只有 1/10 的企业实际上有一个类别。
-
你的假设是正确的,这正是我想要实现的。
-
发布了一些应该让你走上正轨的东西。让我知道它是否有效。我不是 100% 确定
$u->business()->save(...)实际上会返回商业模式。如果没有,它将无法按原样工作。
标签: php laravel eloquent migration faker