簡體   English   中英

如何使用json編碼(Symfony 4)從mysql數據庫中獲取數據?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM