所以,我和Ajax POST调用控制器中的一个函数来重新调整像这样的json响应:
$images = $this->getEntityManager()->getRepository('AppBundle:Image')->findBy(array(),array(),5);
$response = new JsonResponse();
$response->setData(array(
'images' => $images
));
return $response;
我得到了五个元素,但是全部都是空的......如下图所示:
例如,我从数组中的元素返回一些属性并且它可以工作:
$images = $this->getEntityManager()->getRepository('AppBundle:Image')->findBy(array(),array(),5);
$response = new JsonResponse();
$response->setData(array(
'images' => $images[0]->getSlug()
));
return $response;
这是简单的ajax代码:
$.ajax({
method: 'POST',
url: $("#scroll-down").attr("data-href"),
success: function(response) {
console.log(response);
},
error: function() {
console.log(response);
}
}).fail(function() {
console.log(response);
});
答案 0 :(得分:0)
在Symfony中JsonResponse
主要是php函数的包装器json_encode
json_encode
不会对私有对象属性进行编码。
<?php
class Test {
private $a = null;
public $b = 3;
public function __construct($a) {
$this->a = $a;
}
}
$test = new Test(1);
echo json_encode($test);
这将输出{"b":3}
,因为$a
是私有的
因此,您应该在问题上使用第二个表单或使用序列化程序包