\ Drupal\node\Entity\Node :: load($ nid)を使用してノードオブジェクトを変数に格納し、その変数をdrupal 8のシリアライゼーションコンポーネントまたはシンフォニーのシリアライゼーションにさえも渡します。メソッドすべての努力の結果、ノードの最初のプロパティである{"in_preview":null}のみをエンコードするJSONオブジェクトが生成されました。
たとえば、次のコールバックは{"in_preview":null}を返します
public function page(){
$nrm = new \Drupal\Component\Serialization\Json;
$node = Node::load(2);
$json = $nrm -> encode($node, 'json');
return $json;
}
上記のコードで$ nodeのシリアル化を実現するクラス/メソッドは何ですか?
Drupalデータ型( Typed Data API ))をシリアル化して正規化を適切に実行する場合は、serializer
サービスを使用する必要があります。これには、 serializer
サービスを定義するAlari Truutsが指摘したシリアル化モジュールを有効にします。
Serializeメソッドは、$context
パラメータは意味します。 Drupal Typed Dataの場合、データタイプのプラグインIDが必要です(この場合、 EntityAdapter )。
$serializer = \Drupal::service('serializer');
$node = Node::load(2);
$data = $serializer->serialize($node, 'json', ['plugin_id' => 'entity']);