在我的routes.global.php中,我在路线中找到了这个。
[
'name' => 'test',
'path' => '/test',
'middleware' => [App\Action\Test1Action::class, App\Action\Test2Action::class],
'allowed_methods' => ['GET'],
],
我已经返回$ next($ request,new JsonResponse($ data));在Test1Action类的末尾,所以它会将数据发送到下一个动作。
但在Test1Action中是否有办法检查之后是否还有其他行动?
也许有另一种方式,所以我可以做以上的回报,如果有一个之后或返回json响应仪式。
返回新的JsonResponse($ data);
这样我可以单独使用Test1Action,也可以在其他操作之前插入它。
我尝试了一些选项,但没有成功。任何帮助都会很棒。感谢。
答案 0 :(得分:1)
也许你可以检查$ next是否为null。但它可能总是设定,我从未尝试过。然而,在表达式2中,它总是被设置并且它更改为代表。最后的中间件也将是NotFoundHandler。
由于您自己开发应用程序,因此您了解中间件和操作的顺序。我会让Test1Action中间件做它的事情,将结果作为属性添加到$ request中,并让下一个中间件弄清楚数据是否已设置。如果未设置数据,则跳过它并执行下一个中间件。它使它变得更容易。