Symfony2 - 在ESI和主要请求之间传递值

时间:2013-06-09 12:16:31

标签: symfony

我需要将路径中主控制器的值传递给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调用中的查询参数传递并不好,因为它有时可能是需要传递的信息数组。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

您可以将参数传递给您的操作:

{{ render_esi(controller('YourBundle:Default:news', { 'max': 5 })) }}

或使用像这样的路线参数

{{ render_esi(url('latest_news', { 'max': 5 })) }}

在此question中正确回答。