我需要将路径中主控制器的值传递给ESI使用的控制器。
因此控制器呈现Twig模板,在Twig中称为:
{{ render_esi(url('route_name')) }}
以上呈现控制器。这是我需要在两者之间传递信息的两个控制器。
我注意到使用$ request->属性不起作用,即使它不是ESI也是如此:
//these WON'T pass between master request and ESI
$request->attributes->set('the_value');
$request->attributes->get('the_value');
会议并不理想,因为我需要确保它们在某些情况下被清除。
我真的只想要一次传递一些信息的相同请求。我希望$ request->属性将被分享给我,这是一个请求(虽然我相信Symfony称它为一个主请求,包含各种子请求,我猜测$ request->属性被锁定到那个范围)。
将它作为ESI调用中的查询参数传递并不好,因为它有时可能是需要传递的信息数组。
有什么想法吗?
答案 0 :(得分:3)
您可以将参数传递给您的操作:
{{ render_esi(controller('YourBundle:Default:news', { 'max': 5 })) }}
或使用像这样的路线参数
{{ render_esi(url('latest_news', { 'max': 5 })) }}
在此question中正确回答。