出来ますか?エンティティのviewBuilderを使用して完全なhtmlを生成し、その出力をブラウザに送信する代わりに文字列に保存するには、.
twigテンプレートを使用して電子メールメッセージをレンダリングする可能性が開かれます。
さまざまなサービスを試し、レンダラーサービスを使用して、ページ固有の出力をHTMLとしてレンダリングできますが、完全なHTMLコードを文字列に変換する方法が見つかりません。
マット。
あなたの質問は、「a drupal 8エンティティを文字列にレンダリングする」です。これは、これを行う方法の例です。エンティティを取得します。エンティティノードのビュービルダーを取得し、それを使用して、表示モードが「フル」の配列をレンダリングします。これをrenderRootで文字列$ htmlにレンダリングします。
$node = \Drupal::entityManager()->getStorage('node')->load($nodeid);
$view_builder = \Drupal::entityManager()->getViewBuilder('node');
$renderarray = $view_builder->view($node, 'full');
$html = \Drupal::service('renderer')->renderPlain($renderarray);
これは、任意のエンティティに対して実行できます。デフォルトでは、テーマで設定されているnode.html.twigを使用します。ただし、レンダリングする前にレンダー配列を変更できます。
編集:メールの場合は renderPlain() を使用します。