2017-03-09 25 views
0

我在symfony2應用程序中創建了兩個類之間的關係。它是這樣設計的,tableB與tableA相關我在tableA表(作爲超級實體)中輸入了數據,而在我的控制器中,我使用json發佈了一個向tableB表中插入數據的帖子。從tableB的的引用外鍵取整數,但是當我試圖讓從郵遞員後我得到這個奇怪的錯誤500內部服務器錯誤 - 參數傳遞必須是類類型,但整數給 - symfony2

{ 
"message": "Expected value of type "\myBundle\Entity\TableA" for association field "\myBundle\Entity\Platforms#$dataValue", got "integer" instead.", 
"class": "Doctrine\ORM\ORMInvalidArgumentException", 

,這是我的JSON格式我從郵遞員

{ 
"id": 6, 
"variable": false, 
"variable": true, 
"variable": true, 
"variable": true, 
"variable": false, 
"variable": true, 
"variable": true, 
"variable": true, 
"variable": false, 
"variable": false, 
"variable": true, 
"fkValue":3 //area of challenge 
} 

張貼在我實體類我有這樣的代碼片段

/** 
    * 
    * 
    * @param \MyBundle\Entity\TableA $dataValue 
    * @return Platforms 
    */ 
    public function setValue(\Api3Bundle\Entity\TableA $dataValue = null) 
    { 
     $this->dataValue = $dataValue ; 

     return $this; 
    } 

================ EDITED ==================

這是我如何從控制器將數據插入到表B,以表A的外鍵字段

//getting the value from request 
$variable = $request->get('variable'); 

//setting the value for persistence 
$data->setValue($variable);//area of challenge 
    $em = $this->getDoctrine()->getManager(); 
$em = $this->getDoctrine()->getManager(); 
    $em->persist($data); 

我不知道如果我在正確的軌道上,但可以將某些告訴我如何將數據插入到使用郵遞員的json的外鍵字段。許多感謝

+0

是您的JSON被髮送到API被轉換爲'\ Api3Bundle \實體\ TableA'實例?你的setValue需要一個TableA實體,而不是json。 –

+0

@Andrew Nolan剛剛編輯我的問題,你可以通過發表一個答案或建議 – parker

+0

來幫助一點,所以如果'變量'不是TableA的一個實例,那麼你將得到你遇到的500錯誤。將您的方法更改爲接受一個整數作爲參數,或者實例化一個TableA實體並將其傳遞給您的'setValue()'方法。 –

回答

相關問題