Я хотел разобрать ответ на запрос сканирования Dynamodb, и вот мой код
$client = $this->getClient();
$result = $client->scan([
'ExpressionAttributeValues' => [
':v1' => [
'S' => "200",
],
],
'FilterExpression' => 'id = :v1',
'ProjectionExpression' => "entryStamp",
'TableName' => $this->table,
]);
return $this->unmarshalItem($result['Items']);
Возвращает ошибку «Неожиданный тип: entryStamp.»
Я искал это сам, и в данный момент это кажется невозможным.
Я не нашел ничего конкретно о PHP, но эта тема опишите точно такую же проблему с GO.
Так что лучший способ сделать это — сделать то, что Саурабх посоветовал в своем комментарии:
$result = $this->client->query($params);
$data = [];
foreach( $result['Items'] as $item)
{
$data[] = $marshaler->unmarshalItem($item);
}
return $data;
Других решений пока нет …