如果没有提供类名,调用php artisan db:seed是行不通的

时间:2017-03-29 10:58:21

标签: php laravel

我在数据库文件夹中有一个播种器类

class UsersTableSeeder extends Seeder
{
    public function run()
    {
        $user = new User();
        $user->name         = 'Name';
        $user->email        = 'email@gmail.com';
        $user->password        = bcrypt('secret');
        $user->save();

    }
}

当我运行php artisan db:seed没有任何反应时,仅在我运行php artisan db:seed --class=UsersTableSeeder时调用播种器

这意味着我必须单独调用每个播种器类,任何想法为什么db:seed不能自行工作?

3 个答案:

答案 0 :(得分:3)

查看database/seeds/DatabaseSeeder.php

您需要将呼叫添加到其他播种机中。

然后db:seed将按预期运作

示例:

<?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        $this->call(UsersTableSeeder::class);
        $this->call(SecondSeedClass::class);
        $this->call(ThirdSeedClass::class);

    }
}

答案 1 :(得分:2)

您必须在种子文件夹中的DatabaseSeeder类中注册种子类。 run方法中的所有类都将在php artisab db:seed命令

上播种
class DatabaseSeeder extends Seeder {

    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run() {
        $this->call(UsersTableSeeder::class);
        $this->call(AnotherSeeder::class);

    }

}

答案 2 :(得分:1)

您需要将其添加到DatabaseSeeder类:

public function run()
{
    $this->call(UsersTableSeeder::class);
}