Laravel 5获得命令响应

Phi*_*oss 4 php laravel laravel-5

我想我理解Laravel中命令的概念,因为它是放置可重用代码的好地方,可以从控制器等调用,但我有一个查询:

我可以从命令返回一个值回调用方法吗?例如,我有一个控制器方法,它在Active Directory中创建一个用户,为此有一个命令来执行此操作.如果AD服务器无法访问,我想将响应返回给调用控制器方法.这可能吗?

它只在文档中显示如何使用命令dispatch(),但没有关于它是否可以返回任何内容.

如果你不能返回一个值,有人可以解释为什么你不想返回一个值的原因吗?我知道排队的命令可能需要一段时间而不适合等待响应,但对于应立即执行的命令,我不明白为什么你不想返回一个值.

任何帮助或建议表示赞赏.

Pat*_*han 7

在命令总线的上下文中,是的,您可以返回非排队命令的值.在命令处理程序方法中,只需返回您想要的内容:

public function handle(){
    return 'foobar';
}
Run Code Online (Sandbox Code Playgroud)

并将dispatch命令的结果保存到变量:

 $my_command_result = $this->dispatch(
    new MyCommand();
);
Run Code Online (Sandbox Code Playgroud)