アクメ\ StoreBundle \ドキュメント\人は - タイプ "アクメ StoreBundle ドキュメント GPS" の引数期待、 "アレイ"
/**
* @MongoDB\Document
*/
class Person
{
/**
* @MongoDB\bool
*/
private $hasemail;
/**
* @MongoDB\EmbedOne(targetDocument="Gps")
*/
private $gps;
/**
* @MongoDB\Field(name="email", type="collection")
*/
private $email;
}
...
アクメ\ StoreBundle \ドキュメント\を与えられましたJSONにMongoのドキュメントをシリアライズGPS
/**
* @MongoDB\EmbeddedDocument
*/
class Gps
{
/**
* @MongoDB\Field(type="float")
*/
private $latitude;
/**
* @MongoDB\Field(type="float")
*/
private $longitude;
}
...
のmongo JSONドキュメント
{
"hasemail": true,
"gps": {
"latitude": 42.941579990394,
"longitude": -85.244641161525
},
"email": [
"[email protected]",
"[email protected]",
"[email protected]"
]
}
は完璧に動作します。 「タイプ 『アクメ\ StoreBundle \ドキュメント\のGPS』の期待される引数、 『配列』与えられた」
デシリアライズコード:
$post = $request->getContent();
$serializer = $this->get('serializer');
$person = $serializer->deserialize($post, Person::class, 'json');
ポストは、JSONオブジェクトである - ない配列。クラスが正しい - ここで名前を変更するのを忘れてしまった。 –
jsonオブジェクトまたはjson配列はPHP配列に変換されます。この問題は、json_decodeが配列をPerson :: classに変換しようとした後に発生します。デシリアライザがオブジェクトの埋め込みや型の不一致に対して機能していませんか?どのように修正する? –
https://stackoverflow.com/questions/40033732/denormalize-nested-structure-in-objects-with-symfony-2-serializer – jeremy