[英]Many to Many relationship Json
我正在使用Doctrine作為ORM。 我對此很陌生。 因此,我想發送有關實體的Json響應。 實體如下:
醫學和仿制葯具有多對多的關系,仿制葯和內容也具有多對多的關系。 我需要顯示葯物的詳細信息以及葯物的仿制葯和仿制葯的含量。
這是我的代碼
public function jsonSerialize()
{
$newArray= array();
$generics=$this->getGenerics();
foreach ($generics as $generic){
$array = json_decode(json_encode($generic), true);
var_dump($array);
array_push($newArray, $array);
}
var_dump($newArray);
$xyz=array();
$xyz1=array();
$arratJosn = array(
'medicineId' => $this->id,
'medicineName' => $this->medicineName,
'medicineQuantity' => $this->medicineQuantity,
'medicinePrice' =>$this->medicinePrice,
'manufactureId' =>$this->manufactureId->getmanufatureName(),
'medicineApproved' => $this->medicineApproved,
'medicineVersion' =>$this->medicineVersion,
'genericDetails'=> array('genericName'=>$xyz,
'genericQuantity' => $xyz1,),
);
foreach ($generics as $generic){
$genericName=$generic->getGenericName();
array_push($arratJosn['genericDetails']['genericName'], $genericName);
$contents=$generic->getContent();
foreach ($contents as $content){
$genericQuantity=$content->getGenericQuantity();
array_push($arratJosn['genericDetails']['genericQuantity'], $genericQuantity);
$genericPrice=$content->getGenericUnit();
}
}
return $this;
}
在實體上使用jsonEncode,我可以檢索json數據,如下所示:
{"medicineId":27,
"medicineName":"MedTest11",
"medicineQuantity":20
"medicinePrice":70,
"manufactureId":"Company2",
"medicineApproved":1,
"medicineVersion":1,
"genericDetails":{"genericName":["paracetamol","newgeneric"],
"genericQuantity":["30","40"]}
}
雖然我希望結果顯示為
{"medicineId":27,
"medicineName":"MedTest11",
"medicineQuantity":20,
"medicinePrice":70,
"manufactureId":"Company2",
"medicineApproved":1,
"medicineVersion":1,
"genericDetails":[{"genericName":"paracetamol", "genericQuantity":"30"},{"genericName":"newgeneric", "genericQuantity":"40"}]
}
我怎樣才能做到這一點?
為此,您需要像這樣將數組推入genericDetails
$arratJosn = array(
'medicineId' => $this->id,
'medicineName' => $this->medicineName,
'medicineQuantity' => $this->medicineQuantity,
'medicinePrice' =>$this->medicinePrice,
'manufactureId' =>$this->manufactureId->getmanufatureName(),
'medicineApproved' => $this->medicineApproved,
'medicineVersion' =>$this->medicineVersion,
'genericDetails'=> array()
);
foreach ($generics as $generic){
$genericName=$generic->getGenericName();
$contents=$generic->getContent();
foreach ($contents as $content){
$genericQuantity=$content->getGenericQuantity();
$genericPrice=$content->getGenericUnit();
$genericArray = array (
'genericName' => $genericName,
'genericQuantity' => $genericQuantity
);
array_push($arratJosn['genericDetails'],$genericArray);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.