我已经设置了一些事件监听器,我想在其中检测我是在运行数据库迁移还是正常的请求/命令。
有没有办法知道这一点?全局旗帜?环境?
提前致谢。
最佳答案
您可以检查控制台是否正在使用 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
}
}
来源:How to get the current console command in Laravel
关于Laravel:检测是否正在运行迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55168645/