2
votes

Usually when seed my database it tells me which table I'm seeding on the command line but because I am passing an argument to my seeder the message has disappeared (makes debugging really hard because I don't know which seeder it's on when it breaks).

use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;

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

        // Default

        $this->call(UsersSeeder::class, 'large_test_data');

        Model::reguard();
    }

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

Any idea of how to get it back?

2

2 Answers

1
votes

In the original Seeder class call method has an additional statement, try to add it:

public function call($class) {

    //...

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

Change your call() method like this:

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

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