AdminInterface.Thenのようないくつかのインタフェースが表示するのparamsを渡すのは、その実装を作ってみましょう、あなたは余分のparamに合格したいコントローラを指定するには、いくつかの方法があります.view:
public function onKernelView(GetResponseForControllerResultEvent $event)
{
$result = $event->getControllerResult();
if (!$result instanceof AdminInterface || !isset($result['template']) || !isset($result['data'])) {
return;
}
$data = array_merge($result['data'], array('myvar' => 'value'));
$rendered = $this->templating->render($result['template'], $data);
$event->setResponse(new Response($rendered));
}
2 /属性をあなたのparamsが含まれており、$要求 - >属性 - >(「myVarに」)を取得し、テンプレートに直接渡すことで、あなたのコントローラでそれを得る要求を渡します。
public function onKernelController(FilterControllerEvent $event)
{
$controller = $event->getController();
if (!$result instanceof AdminInterface) {
return;
}
$event->getRequest->attributes->set('myvar', 'value');
}
symfonyカーネルイベントの詳細については、docを参照してください。 お手伝いをしてください。
コードを表示できますか? –
symfonyコントローラは、一般に、ミドルウェアのためのスペースがないように、テンプレートの応答バージョンを返します。一般的に、Symfonyコントローラが応答を返すとき、それは完全に解析された文字列です。コントローラの後でそれを処理できるようにするには、テンプレートを特定するためのパラメータを返す必要があり、追加のパラメータと実際の応答の作成を処理する 'Kernel :: Response'リスナを設定しますオブジェクト。 – qooplmao
2つのオプションが考えられますが、基本的に両方とも言っています 1)サービス - ユーザーが権限を持っているか、要求が正しいURL /コントローラなどにある場合に変数を取得する機能があります 2 )ミドルウェア - イベントリスナーを使用して、正しい要求に変数を設定します。 –