내가 JSON
으로 저장소 개체를 보내려고에 JSON으로 저장소에서 개체를 반환하는 방법 내 컨트롤러 코드 :Symfony3
if($request->isXmlHttpRequest()){
$data = $request->request->get('id');
$bedroom = $em->getRepository('EpitaHousingBundle:Bedroom')->findOneBy(array('id'=>$data));
$this->container->get('logger')->addInfo('somesh');
return $json = new Response(json_encode(array('bedroom' => $bedroom)));
}
내 자바 스크립트 코드 : 여기
$(document).ready(function(){
var id_select = $('#bedroom_view_bedroom').val();
$.ajax({
type: 'POST',
url: '{{ (path('listingview', {'id': id})) }}',
contentType: 'application/x-www-form-urlencoded',
data: {id:id_select},
success: function(result,status,xhr){
var inst_arr = JSON.parse(result);
console.log(inst_arr);
},
error: function(xhr, status, error) {
console.log(status);
}
});
});
내가 빈 객체를 응답으로 가져옵니다. symfony3를 사용하여 json으로 저장소 객체를 어떻게 보낼 수 있습니까? 어느 하나 도와주세요. 미리 감사드립니다 ...
편집 : 내가하려고하면이
jquery.min.js:4 POST http://localhost/epitahousing/web/app_dev.php/provider/listing/view/8 500 (Internal Server Error)error
을 보여주는
if ($request->isXmlHttpRequest()) {
$data = $request->request->get('id');
$bedroom = $em->getRepository('EpitaHousingBundle:Bedroom')->findOneBy(array('id' => $data));
if (null === $bedroom) {
$bedroomJson = '';
}
$this->container->get('logger')->addInfo('somesh');
$serializer = $this->container->get('serializer');
$bedroomJson = $serializer->serialize($bedroom, 'json');
return new Response($bedroomJson, Response::HTTP_OK, ['content-type' => 'application/json']);
}
콘솔과 같은 코드 아래에 시도 잘못 어디로 가는지 잘 모릅니다
xmlHttpRequest 전에 저장소 객체 찾기
$bedroom = $em->getRepository('EpitaHousingBundle:Bedroom')->findOneBy(array('id' => '12'));
if ($request->isXmlHttpRequest()) {
//code
}
,
여기에 적절한 오브젝트를 보여주는하지만 잘못
Edit2가가는 무슨 난 정말 JSON을 모르는 : 나는 모든 사람을 위해 ... 지금은 잘 작동 것 같은 감사를 수행
$bedroom = $this->em->getRepository('EpitaHousingBundle:Bedroom')->findOneBy(array('id'=>$data));
$output['rentamount'] = $bedroom->getRentamount();
$output['rentcurrency'] = $bedroom->getRentcurrency()->getValue();
$output['rentduration'] = $bedroom->getRentduration()->getValue();
$output['bondamount'] = $bedroom->getBondamount();
$output['bondcurrency'] = $bedroom->getBondcurrency()->getValue();
$output['leaseminduration'] = $bedroom->getLeaseminduration()->getValue();
$output['leasemaxduration'] = $bedroom->getLeasemaxduration()->getValue();
return $json = new Response(json_encode($output));
... 등 유용한 응답
내 대답이 도움이 되었습니까? 예, 동의하십시오 :) – Mcsky