我已经阅读了很多项目中使用的命令总线,它非常棒。我继续阅读,但命令不应该向控制器返回任何内容;但是,有些时候我觉得我必须绝对返回一个值,例如:
$product = $this->dispatch(AddProductCommand::class);
return redirect()->route('route', $attributes = ['product_slug' => $product->slug]);
我需要抓住新创建的产品的slug,因为重定向路线需要slug。这是不好的做法,如果是这样的话会有什么更清洁的方法呢?
答案 0 :(得分:0)
当您使用同步设计的Web框架时,无法以完全异步的方式实现它。
如果您使用允许异步请求的框架或(甚至更好)您从后端分离UI关注点(如重定向),您可以使用触发重定向的回调订阅ProductAdded事件。