2016-02-18 21 views
0

我實際上正在開發一個Symfony REST API併爲一個進一步的項目做一些測試,我需要你的幫助。如何使用JSONLD和Hydra(Symfony API)在3級進行POST

我有一個實體聯繫人,它有一個MoyenCommunication(抽象類只有一個ID)數組。 我有en Entity Telephone,它繼承了MoyenCommunication幷包含一個獨特的屬性「numero」。

Contact -> ($moyenComms)[Telephone->numero] 

我想測試我的API,並直接增加了MoyenCommunication是電話與它的「NUMERO」聯繫人。

這裏是JSON-LD我嘗試發佈:

{ 
"nom": "Nomgfdg", 
"prenom": "Prenomgfdgd", 
"dateNaissance": "2016-02-16", 
"amiDepuis": "2016-02-16", 
"moyensComm": [ 
    { 
     "@type": "Telephone", 
     "numero": "100009" 
    } 
    ] 
} 

這裏是迴應:

Cannot create an instance of ContactBundle\\Entity\\MoyenCommunication from serialized data because it is an abstract resource 

這裏是我的MoyenCommunication映射:

inheritanceType: JOINED 
discriminatorColumn: 
    name: type 
    type: integer 
discriminatorMap: 
    1: Telephone 

我真不不知道我在做什麼壞事,所以我需要你的幫助。 我已經使用Google但沒有任何好結果。 謝謝。 鮑里斯

回答

0

錯誤是相當清楚的:

Cannot create an instance of ContactBundle\Entity\MoyenCommunication from serialized data because it is an abstract resource 

您需要使用非抽象類的資源。創建新的女巫將擴展MoyenCommunication並將其用於您的資源表示。

+0

我已經嘗試使用從MoyenCommunication(查看我的查詢中的代碼)擴展的電話,事實上我不知道爲什麼它試圖實例化MoyenCommunication。 –

+0

但moyensComm仍然是抽象類ContactBundle \ Entity \ MoyenCommunication的類型。它不可能。看起來像序列化程序不會與Doctrine鑑別器功能很好玩。 –

+0

在這裏檢查DunglasApiBundle的外觀如何看起來合適的抽象類。它通過捆綁https://github.com/dunglas/DunglasApiBundle/blob/9b1005a5774cc7d766cd11e9912e268f25ffe393/Tests/Behat/TestBundle/Entity/AbstractDummy.php通過獲取/創建/更新/測試,所以它應該是確定的。也許這會給你一些提示。 –

相關問題