Laravel:检测是否正在运行迁移

Gon*_*afa 5 migration laravel

我已经设置了一些事件监听器,我想在其中检测我是否正在运行数据库迁移或正常的请求/命令。

有什么方法可以知道这一点吗?全球旗帜?环境?

提前致谢。

Pet*_*ter 5

您可以检查控制台是否正在使用App::runningInConsole()...这可能就足够了,具体取决于您运行迁移的方式。

更新:

好的,经过更多挖掘后,您似乎可以使用以下示例来获取所需的信息:

if(app()->runningInConsole()) {
    // we are running in the console
    $argv = \Request::server('argv', null);

    // :$ php artisan migrate:refresh -v
    //
    // gives:
    //
    // $argv = array (
    //      0 => 'artisan',
    //      1 => 'migrate:refresh',
    //      2 => '-v',
    // )  

    if($argv[0] == 'artisan' && \Illuminate\Support\Str::contains($argv[1],'migrate')) {
        // we are running the artisan migrate command
    }
}
Run Code Online (Sandbox Code Playgroud)

来源:如何在 Laravel 中获取当前控制台命令