1

htmljsonレスポンスを処理するために同じアクションを使用していますが、後者のルートに.json.

json問題なく動作していますが、応答がテンプレートにhtml追加の変数を渡す必要がある場合はTwig、わかりませんし、その方法もわかりません。現時点では、私のコードは次のとおりです。

// $entity = get my data;

$name = 'foo';

$view = $this->view($entity, 200)
   ->setTemplate('MyBundle:MyController:myTemplate.html.twig')
   ->setTemplateVar('entity')
   ;

return $this->handleView($view);

$nameに渡すにはどうすればよいmyTemplate.html.twigですか? 私が必要とするのは次のようなものです:

//...
->setTemplate('MyBundle:MyController:myTemplate.html.twig', array('name' => $name))
//...
4

1 に答える 1

0

わかりました、FosRestBundle github page で問題を開くという応答がありました。

現時点では、簡単な方法はありませんが、次の手順で機能します。

1)ルートのデフォルトに、それぞれと の値_formatを持つオプションを追加します。htmljson

defaults: { _controller: myBundle:myController:myAction, _format: html } #or json

$_format2)アクション シグネチャの最初のパラメーターとして追加します。

public function myActionAction($_format, $any_other_paramer)

3) 条件付きで Twig テンプレートに変数を追加します。

if ($this->get('fos_rest.view_handler')->isFormatTemplating($_format)) {
  $view->setData(array('name' => $name, 'entity' => $view->getData()));
}
于 2012-09-17T16:56:17.717 に答える