Mezzio zend expressive-中间件检查是否有下一个可用的?

Mezzio zend expressive-中间件检查是否有下一个可用的?,mezzio,Mezzio,在我的routes.global.php中,我在routes中有一个 [ 'name' => 'test', 'path' => '/test', 'middleware' => [App\Action\Test1Action::class, App\Action\Test2Action::class], 'allowed_methods' => ['GET'], ], 我有这个return

在我的routes.global.php中,我在routes中有一个

    [
        'name' => 'test',
        'path' => '/test',
        'middleware' => [App\Action\Test1Action::class, App\Action\Test2Action::class],
        'allowed_methods' => ['GET'],
    ],
我有这个return$next($request,newjsonresponse($data));在Test1AAction类的末尾,它将数据发送到下一个操作

但是Test1Action内部是否有一种方法可以检查之后是否还有其他操作

也许还有另一种方法,我可以在有返回的情况下执行上面的返回,或者返回json响应

返回新的JsonResponse($data)

这样,我既可以单独使用Test1Action,也可以在其他操作之前插入它


我尝试了一些选择,但没有成功。任何帮助都会很好。谢谢。

如果$next为空或否,也许您可以检查它。但它可能总是固定的,我从未尝试过。但是,在Expressive 2中,它始终处于设置状态,并更改为代理。最后一个中间件将始终是NotFoundHandler

因为您自己开发应用程序,所以您知道中间件和操作的顺序。我会让Test1Action中间件完成它的工作,将结果作为属性添加到$request中,并让下一个中间件确定数据是否已设置。如果没有设置数据,则跳过它并执行行中的下一个中间件。这样做容易多了