在Zend表现力Hal中对多个资源使用相同的类

时间:2019-05-08 17:01:56

标签: zend-framework zend-expressive

我正在使用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');

};

0 个答案:

没有答案