2017-03-08 110 views
0

在我的routes.global.php中我有这个路线。我已经返回$ next($ request,new JsonResponse($ data));我已经返回$ next($ request,new JsonResponse($ data));在Test1Action类的最后,它将把数据发送到下一个动作。zend expressive - 中间件检查是否有下一个可用?

但Test1Action内部有一种方法来检查是否有另一个行动后?

也许还有另一种方法,以便我可以做以上回报,如果有一个之后或返回的JSON响应仪式。

return new JsonResponse($ data);

这样我就可以单独使用Test1Action或在其他操作之前插入它。

我尝试了几个选项,但没有工作。任何帮助都会很棒。谢谢。

回答

1

也许你可以检查$ next,如果它为空或不是。但它可能会一直设置,我从来没有尝试过。但是,在Expressive 2中,它始终处于设置状态,并且会更改为代表。最后的中间件也将是NotFoundHandler。

由于您自己开发应用程序,所以您知道中间件和Actions的顺序。我会让Test1Action中间件做它的事情,将结果添加到$ request中作为属性,并让下一个中间件算出数据是否已设置。如果数据未设置,则跳过它并按行执行下一个中间件。它使它更容易。

相关问题