![](/img/trans.png)
[英]How can I get data from mysql database into datatable with doctrine (Symfony 4)?
[英]How can I get data from mysql database with json encode (Symfony 4)?
现在,我正在通过Doctrine从数据库中获取数据:
$articles = $this->getDoctrine()->getRepository(Article::class)->findAll();
return $this->render('homepage.html.twig', array('articles' => $articles));
一切正常。 但是我需要通过json编码获取数据,因为我想使用服务器端处理数据表。 所以我尝试使用序列化器
$encoders = array(new XmlEncoder(), new JsonEncoder());
$normalizers = array(new ObjectNormalizer());
$serializer = new Serializer($normalizers, $encoders);
$articles = $this->getDoctrine()->getRepository(Article::class)->findAll();
$jsonContent = $serializer->serialize($articles, 'json');
return $this->render('homepage.html.twig', $jsonContent);
但是我收到错误消息:
传递给Symfony \\ Bundle \\ FrameworkBundle \\ Controller \\ AbstractController :: render()的参数2必须为数组类型,给定字符串,在第46行的/Users/work/project/src/Controller/ArticleController.php中调用Symfony \\ Component \\ Debug \\ Exception \\ FatalThrowableError:“传递给Symfony \\ Bundle \\ FrameworkBundle \\ Controller \\ AbstractController :: render()的参数2必须为数组类型,给定字符串,在/ Users / work / project / src /中调用第46行的Controller / ArticleController.php,位于/Users/work/project/vendor/symfony/framework-bundle/Controller/ControllerTrait.php第219行
因此,使第二个参数render
数组:
return $this->render('homepage.html.twig', ['json_content' => $jsonContent]);
在模板中:
{{ json_content }}
虽然我不知道为什么要使用模板,但是有一个返回单个json的json()
方法:
return $this->json($articles); // without using serializer
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.