Laravel 5 | DatabaseSeeder.php中的多个播种机

时间:2015-03-08 09:13:17

标签: php laravel laravel-5

我创建了一些自定义播种机,现在我试图让它们从DatabaseSeeder.php播种,但它一次只能播种一次

当前的DatabaseSeeder.php

    <?php  
use Database\seeds\CandySeeder;
use Database\seeds\ChocolateSeeder;
use Database\seeds\AlmondSeeder;
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model; 

class DatabaseSeeder extends Seeder {

    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        Model::unguard();

        $this->call ('FirewallModelsSeeder');
    }    

}

我试图运行

public function run()
    {
        Model::unguard();

        $this->call ('CandySeeder', 'ChocolateSeeder', 'AlmondSeeder');
    }

public function run()
    {
        Model::unguard();

        $this->call arrary ('CandySeeder', 'ChocolateSeeder', 'AlmondSeeder');
    }

只有CandySeeder运行= / - 我必须将我要运行的那个移动到第一个。有没有办法传递一个列表,所以他们都可以运行。我试过每行1行,但是db:seed给了我一个错误,它无法重新声明播种器

3 个答案:

答案 0 :(得分:4)

public function run()
    {
        Model::unguard();
        $seeders = array ('CandySeeder', 'ChocolateSeeder', 'AlmondSeeder');

        foreach ($seeders $as $seeder)
        { 
           $this->call($seeder);
        }
    }

只需在循环中运行调用函数

答案 1 :(得分:1)

在Laravel 5.1中:

Model::unguard();
$this->call(UsersAdminSeeder::class);
$this->call(TipoUsuarioTableSeeder::class);
Model::reguard();

答案 2 :(得分:0)

在 Laravel 8 中:

$this->call([UsersSeeder::class,RolesSeeder:class]);