[英]symfony/FOSRestBundle : empty JSON response (using the symfony embodied serializer)
我正在學習使用symfony構建API(使用FOSRestBundle)。 我正在學習法語教程。 顯然,我首先嘗試自己編寫代碼,但即使使用復制/粘貼,當我向相應的路徑(rest-api.local / places)發出GET請求時,它仍然會讓我獲得空的JSON數組。
如果我“格式化”php數組中的代碼,代碼工作正常:
public function getPlacesAction(Request $request)
{
$places = $this->get('doctrine.orm.entity_manager')
->getRepository('AppBundle:Place')
->findAll();
/* @var $places Place[] */
$formatted = [];
foreach ($places as $place) {
$formatted[] = [
'id' => $place->getId(),
'name' => $place->getName(),
'address' => $place->getAddress(),
];
}
return new JsonResponse($formatted);
}
但后來我嘗試直接序列化$ places,使用fost Rest的視圖處理程序(在config.yml中)
fos_rest:
routing_loader:
include_format: false
view:
view_response_listener: true
format_listener:
rules:
- { path: '^/', priorities: ['json'], fallback_format: 'json' }
並將我的控制器中的功能更改為以下代碼,我得到了我的JSON響應,但“{[],[],[]}”之間沒有任何內容(我的數據庫中有3個條目):
public function getPlacesAction(Request $request)
{
$places = $this->get('doctrine.orm.entity_manager')
->getRepository('AppBundle:Place')
->findAll();
/* @var $places Place[] */
return $places;
}
這是我關於stackoverflow的第一篇文章,所以我希望我的問題很清楚,祝你有愉快的一天。
在我的app/config/services.yml
我添加了這個:
services:
object_normalizer:
class: Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer
# Important! Tag this service or it wouldn't work
tags:
- { name: serializer.normalizer }
我仍然無法理解為什么它有效但突然間我有一個很好的json作為回應。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.