php - Laravel 将变量从一个种子文件传递到另一个种子文件?

标签 php database laravel laravel-5

我创建了多个种子文件,我的主 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 输出随机值,但对每个 table seeder 使用相同的值)

最佳答案

我遇到了同样的问题,最终通过添加 $extra var 并将其传递给 run() 函数来覆盖 call() 函数。

<?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, $name1);
        $this->call(PersonTableSeeder::class);
        $this->call(IndividualTableSeeder::class);
        $this->call(HumanTableSeeder::class);
    }

    public function call($class, $extra = null) {
        $this->resolve($class)->run($extra);

        if (isset($this->command)) {
            $this->command->getOutput()->writeln("<info>Seeded:</info> $class");
        }
    }

}

然后将 $extra 添加到你的播种器类中

// database/seeds/UserTableSeeder.php


  /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run($extra = null)
    {
        var_dump($extra);
    }

希望对您有所帮助。

关于php - Laravel 将变量从一个种子文件传递到另一个种子文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32342289/

相关文章:

php - 无法使用 PDO 插入 MySQL 数据库....没有错误

mySQL你怎么做一个chain of join?

php - 用php中的点值替换单词

c# - 如果创建出错,删除数据库

php - 哪个Active Directory的属性对应PHP中ldap_bind函数的 "bind_password"参数

php - laravel Eloquent 查询构建器在没有任何逻辑的情况下更新自定义时间戳字段

php - WP 获取第一个和最后一个帖子标题

php - 在 Symfony2 中自定义选择/实体字段的呈现

php - 有效日期或时间戳

java - 空指针异常