Laravel 播种输出

问题描述 投票:0回答:3

通常,当我的数据库播种时,它会告诉我在命令行上播种哪个表,但是因为我向我的播种器传递了一个参数,所以该消息已经消失(使调试非常困难,因为我不知道它在哪个播种器上)休息)。

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);
    }
}

知道如何找回它吗?

php laravel
3个回答
2
投票

像这样更改你的 call() 方法:

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);
    }
}

1
投票

原来的

Seeder
call
方法中多了一条语句,尝试添加一下:

public function call($class) {

    //...

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

0
投票

Laravel 11 更新:

在播种机中,您可以使用以下方式访问输出组件:

$this->command->outputComponents()->info('info message');
$this->command->outputComponents()->success('success message');
$this->command->outputComponents()->error('error message');

原始答案:https://stackoverflow.com/a/78900318/6614424

© www.soinside.com 2019 - 2024. All rights reserved.