gpt4 book ai didi

php - 如何在命令之外获取 laravel 命令参数,例如在服务提供商?

转载 作者:行者123 更新时间:2023-12-05 02:19:45 26 4
gpt4 key购买 nike

我可以用这段代码在命令中获取参数:

$this->argument();

但是如何从外部获取参数呢?

如果我查看 argument() 函数的源代码,我会看到:

public function argument($key = null)
{
if (is_null($key)) {
return $this->input->getArguments();
}

return $this->input->getArgument($key);
}

我想检测命令“php artisan migrate:refresh --seed”何时运行,因为我希望模型中的某些代码在本地主机环境中运行,但在播种期间不在本地主机环境中运行...

最佳答案

laravel 获取命令参数的机制非常复杂。我可以使用\App::runningInConsole() 检测应用程序是否在控制台中运行,但是没有函数可以获取参数,例如:

if(\App::runningInConsole()){
$args = \App::getConsoleArguments(); // doesn't exist :(
}

但是 $_SERVER['argv'] 在这里很有用,当“php artisan migrate:refresh --seed”在 $_SERVER['argv'] 中运行时是这个数组:

Array
(
[0] => artisan
[1] => migrate:refresh
[2] => --seed
)

所以我可以使用这段代码:

if( ! empty($_SERVER['argv'][2] )  &&  $_SERVER['argv'][2] == '--seed'){
//
}

关于php - 如何在命令之外获取 laravel 命令参数,例如在服务提供商?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41830168/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com