【发布时间】:2015-11-27 07:41:22
【问题描述】:
我创建了多个种子文件,我的主 DatabaseSeeder 文件如下所示:
<?php
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$name1 = "James";
$name2 = "Jeff";
$name3 = "Joe";
$this->call(UserTableSeeder::class);
$this->call(PersonTableSeeder::class);
$this->call(IndividualTableSeeder::class);
$this->call(HumanTableSeeder::class);
}
}
我怎样才能让 UserTableSeeder 和 PersonTableSeeder 从我的主播种器文件中获取变量? (我真正想做的是使用 Faker 输出随机值,但对每个表播种器使用相同的值)
【问题讨论】:
-
当您到达
PersonTableSeeder时,您将迭代用户并为每个用户创建一个人。这意味着您只需要在PersonTableSeeder中生成名称。 -
对于我想要做的事情,我需要一些列来匹配其他表中的相同值,这就是我在类之外设置变量的原因。例如,我将生成一个随机数,并且我想将相同的数字传递给
UserTableSeeder和PersonTableSeeder。 -
你必须为一个用户创建一个人,这个用户会有随机数。
-
我不确定我理解你的意思抱歉。可以举个例子吗?
-
也许看看在 Faker 中播种随机数生成器(与为数据库播种不同):github.com/fzaninotto/Faker#seeding-the-generator。使用相同的种子将在每次运行时产生相同的结果。
标签: php database laravel laravel-5