我正在尝试从控制器中获取Laravel中我的自定义命令的一些信息,但是我不知道哪种方法可以获取命令签名或其他命令信息。实际上,我有一个带有命令列表的选择框,选择一个选项时,我的后端代码将运行并返回选择的命令信息,然后显示在textarea上。
我已阅读this question。 我也用google laravel源代码,但找不到工匠方法源代码放在哪里。
foreach(Artisan::all() as $key=>$command)
{
echo $command->getDescription(); // show description
echo $command->getName(); // show name
echo $command->getSignature(); // error because this method doesn't exist.
}
答案 0 :(得分:1)
根据我的理解,您是正确的,Laravel命令没有提供签名的获取器。或者,您可以研究以下解决方法。
$name
作为签名。 protected $name = 'app:do:something';
我不确定这是否是常见(或最佳)做法,但似乎可以解决问题。
CommandWithSignature
(或SignatureAwareTrait
),该方法公开了getSignature()
方法。public class CommandWithSignature {
protected $signature;
public function getSignature(): string
{
return $this->signature;
}
}