创建虚假请求

时间:2014-05-09 15:30:36

标签: symfony twig

我在Sf2中获得了一个带有这样代码的命令:

use Symfony\Component\HttpFoundation\Request;

...

$container = $this->getContainer();

$container->enterScope('request');
$container->set('request', new Request(), 'request');

$context = $container->get('router')->getContext();
$context->setHost($container->getParameter('website_host'));
$context->setScheme($container->getParameter('website_scheme'));
$context->setBaseUrl($container->getParameter('website_path'));
var_dump($context->getBaseUrl());

这就是我在树枝模板中所做的:

{{ render(controller('X:Y:emailMenu')) }}

我得到了这个恼人的错误:

Rendering a fragment can only be done when handling a Request.

我已经尝试了composer update和:

php vendor/sensio/distribution-bundle/Sensio/Bund
le/DistributionBundle/Resources/bin/build_bootstrap.php

但我仍然收到错误消息。我做错了什么?

1 个答案:

答案 0 :(得分:3)

以下是SF 2.4中的解决方案:

...
$r = new Request();
$r->setLocale('fr');
$container->set('request', $r, 'request');
$container->get('request_stack')->push($r);

因此必须添加此行以使用request_stack:

<强> $容器 - &GT;获得(&#39; request_stack&#39;) - &GT;推($ R);

希望它有所帮助。