I have a DTO coming from my domain that is used as resource. It implements getArrayCopy() and I use the ArraySerializable hydrator.
The resource has a custom identifier tracking_id. If the DTO is returned by ResourceListener#onFetch the resource contains a self link as expected. If
ResourceListener#onFetchAll returns a collection of DTOs the resources in the response do not contain self links.
Here is my configuration:
//routing:
'api' => array(
'type' => 'Literal',
'options' => array(
'route' => '/api',
),
'may_terminate' => false,
'child_routes' => array(
'cargoroutings' => array(
'type' => 'Segment',
'options' => array(
'route' => '/cargoroutings[/:tracking_id]',
'constraints' => array(
'tracking_id' => '[a-zA-Z0-9-]*',
),
'defaults' => array(
'controller' => 'Api\Controller\CargoRoutings',
),
),
)
)
),
//phlyrestfully:
'phlyrestfully' => array(
'resources' => array(
'Api\Controller\CargoRoutings' => array(
'listener' => 'cargo_routing_resource',
'route_name' => 'api/cargoroutings',
'identifier_name' => 'tracking_id',
'collection_name' => 'cargoroutings',
)
),
'renderer' => array(
'default_hydrator' => 'ArraySerializable'
),
'metadata_map' => array(
'CargoBackend\API\Booking\Dto\CargoRoutingDto' => array(
'hydrator' => 'ArraySerializable',
'identifier_name' => 'tracking_id',
'route' => 'api/cargoroutings',
)
),
),
//ArrayCopy of my DTO:
return array(
'tracking_id' => $this->getTrackingId(),
'origin' => $this->getOrigin(),
'finalDestination' => $this->getFinalDestination(),
'legs' => $legsArrayCopy
);
I have a DTO coming from my domain that is used as resource. It implements getArrayCopy() and I use the ArraySerializable hydrator.
The resource has a custom identifier
tracking_id. If the DTO is returned by ResourceListener#onFetch the resource contains a self link as expected. IfResourceListener#onFetchAll returns a collection of DTOs the resources in the response do not contain self links.
Here is my configuration:
I know, I can listen to the
getIdFromResource eventand extract the tracking_id by hand, but I think the configuration should be enough. Did I miss something?