私はこれを読みました: https://github.com/schmittjoh/serializer/issues/77 JMSシリアライザー付きのFOS RestバンドルのJSONでnull値をシリアル化する方法が見つかりませんでした(つまりDoctrineオブジェクトがnullであっても)のキーを表示するだけです。
Composer.jsonで次の構成を使用しています
"jms/serializer-bundle": "0.12.*@dev",
"friendsofsymfony/rest-bundle": "0.13.*@dev",
JMSシリアライザー構成
#jms-serializer
jms_serializer:
visitors:
json:
options: 0 # json_encode options bitmask
serialize_null: true
またはFOS Rest bunde config
fos_rest:
view:
serialize_null: true
動作しません。私は「view_response_listener: 'force'」というビューを使用していません。そのため、構成からのソリューションを提供できる場合は、お役に立てば幸いです。
これを試して
あなたのコントローラーで
$entity = $this->getEntity($id);
$context = new SerializationContext();
$context->setSerializeNull(true);
$serializer = $this->get('jms_serializer');
$response = new Response($serializer->serialize($entity, 'json', $context));
$response->headers->set('Content-Type', 'application/json');
return $response;
しかし、configsに関するfosrestbundleとの相互作用は私にはわかりません。
最近、configで次のオプションを設定できます。
fos_rest:
serializer:
serialize_null: true
この機能を魅力的に機能させる最も簡単な方法
次の追加構成をfos_rest構成オプションに追加します。
fos_rest:
serializer:
serialize_null: true