私はsymfony(FOSRestBundleを使用)でAPIをビルドすることを学んでいます。私はフランスのチュートリアルに従っています。明らかに、私はまず自分でコードを書こうとしますが、コピー/貼り付けをしても、適切なルート(rest-api.local/places)にGETリクエストを行うと空のJSON配列が保持されます。symfony/FOSRestBundle:空のJSONレスポンス(symfony実装のシリアライザを使用)
I「形式」PHPの配列のコード場合、コードはOK作品:
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);
}
が、その後、私は(config.ymlに)fost残りのビューハンドラを使用して、直接$場所をシリアル化しようとする
fos_rest:
routing_loader:
include_format: false
view:
view_response_listener: true
format_listener:
rules:
- { path: '^/', priorities: ['json'], fallback_format: 'json' }
、次のコードを私のコントローラで私の機能を変更する、私は(私は私のDBに3つのエントリを持っている)私のJSON応答を得るが、「{[]、[]、[]}」の間に何もせずに:
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
で
使用しているシリアライザはどれですか?通常、シリアライザは[JMSSerializerBundle](http://jmsyst.com/libs/serializer/master/cookbook/exclusion_strategies) – Jeet