我尝试从表中查看一些行。我在Symfony中有一个AjaxController,该控制器具有以下功能:
use Symfony\Component\Serializer\Serializer;
use Symfony\Component\Serializer\Encoder\JsonEncoder;
use Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer;
use Rowoco\AllgemeinBundle\Entity\Place;
use Symfony\Component\HttpFoundation\JsonResponse;
.
.
.
public function defaultAjaxAction( $job )
{
$user = $this->get('security.context')->getToken()->getUser();
$userId = $user->getId();
$result = $this->$job( $userId );
// Initialisiert Serializer
$encoder = [new JsonEncoder()];
$normalizer = [new GetSetMethodNormalizer()];
$serializer = new Serializer($normalizer, $encoder);
$newData = $serializer->serialize($result, 'json');
return new Response($newData);
}
public function getPlacelist( $iduser )
{
$em = $this->getDoctrine()->getManager();
$request = Request::createFromGlobals();
//if i put here a return 123, then the output in the javascript-console would return 123
$placeRepo = $em->getRepository( "RowocoAllgemeinBundle:Place" );
$placeEntity = $placeRepo->findBy(
array(),
array(),
$request->request->get( "limitCount" ),
$request->request->get( "limitStart" )
);
return new JsonResponse(array('place' => $placeEntity));
}
在我的js文件中,我使用以下功能对其进行了调用:
function getPlaces()
{
var data = {};
data['limitCount'] = 10;
data['limitStart'] = 0;
var url = $( "#pageparameter" ).data( "url-getplacelist" );
$.ajax({
type: "POST",
url: url,
data: data,
dataType: "json"
})
.done(function(resp){
console.log(resp);
$( "#viewPlaces").html(resp.place.description);
})
.error(function(){
console.log("No connection");
});
}
在表中,我有2行,并在工作台中看到它们。
我不使用存储库。我只使用symfony的基本功能。
使用内置JsonResponse
类返回JSON响应。因此,在您的getPlaceList
控制器操作中,最后添加以下内容:
use Symfony\Component\HttpFoundation\JsonResponse;
...
return new JsonResponse(array('place' => $placeEntity));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句