我正在使用Zend Expressive Hal生成Hal响应。问题是,当我对Hal元数据中的2条路由使用相同的resource_class时,它将引发异常并且不起作用。我想知道是否有一种方法可以将同一对象用于多个路径。这是我的Hal元数据代码:
return [
MetadataMap::class => [
[
'__class__' => RouteBasedResourceMetadata::class,
'resource_class' => ImmutablePropertyObject::class,
'route' => 'api.ping',
'extractor' => ArraySerializableHydrator::class,
],
[
'__class__' => RouteBasedResourceMetadata::class,
'resource_class' => \Abstracts\PropertyObject::class,
'route' => 'api.getEventById',
'extractor' => \Event\EventHydrator::class,
],
[
'__class__' => RouteBasedResourceMetadata::class,
'resource_class' => \Abstracts\PropertyObject::class,
'route' => 'api.postEvent',
'extractor' => \Event\EventHydrator::class,
]
]
];
这是我的路线:
return function (Application $app, MiddlewareFactory $factory, ContainerInterface $container) : void {
$app->get('/', App\Handler\HomePageHandler::class, 'home');
$app->get('/api/ping', App\Handler\PingHandler::class, 'api.ping');
$app->get('/api/event/:id', Event\Handler\EventReadHandler::class, 'api.getEventById');
$app->post('/api/event', Event\Handler\EventPostHandler::class, 'api.postEvent');
$app->put('/api/event', Event\Handler\EventUpdateHandler::class, 'api.updateEvent');
};