如何在 Laravel 5.8 中使用 Seeder 类在控制台中显示消息?

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

要在使用 Laravel Artisan 时显示错误,官方 Laravel 5.8 文档说:

$this->error('出了点问题!');

但是

$this
的背景是什么?

以下是播种器类文件的内容:

use Illuminate\Database\Seeder;

class PopulateMyTable extends Seeder
{
    public function run()
    {
        $this->info("Console should show this message");
    }
}
laravel laravel-5
2个回答
15
投票

您可以通过

$this->command->method()
来完成。

其中

$this
是这个 Seeder 实例,
command
是这个播种者控制台 Command 实例,
method()
可以是任何命令可用的输出方法。

<?php

use Illuminate\Database\Seeder;

use App\User;
use Illuminate\Support\Facades\Hash;

class UserSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        $message = 'sample ';
        $this->command->info($message . 'info');
        $this->command->line($message . 'line');
        $this->command->comment($message . 'comment');
        $this->command->question($message . 'question');
        $this->command->error($message . 'error');
        $this->command->warn($message . 'warn');
        $this->command->alert($message . 'alert');
    }
}


0
投票

现在,

$command
被定义为受保护,并且无法通过播种器访问它。

只需要 PHP

echo
就能解决问题。

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