将变量发送到Symfony模板文件

时间:2015-05-05 12:39:31

标签: php symfony model-view-controller twig

我正在尝试将变量发送到不在典型位置的twig文件中。通常我通过指定它们通过Bundle的路径来加载视图但是我要发送变量的文件不是,分层次地,与其他树枝模板处于同一水平。

我有一个如下所示的控制器:

public function fooAction(Request $request)
{

   *//Query*

    return $this->render('Bundle:file.html.twig', array('varToSend' => $queryResult));
}

我很确定Bundle:file.html.twig是错误的,但我不知道如何在树枝中指定相关路径。

2 个答案:

答案 0 :(得分:2)

你必须使用这样的路径:

return $this->render('Bundle:Something:file.html.twig', array(
    'varToSend' => $queryResult
));

并将您的文件放在此文件夹中:

src/Bundle/Resources/views/Something/file.html.twig

答案 1 :(得分:2)

你从容器获得的Twig不能使用任意路径,但你可以初始化自己的树枝:

app/Resources/views

如果您需要在多个地方使用此功能,请考虑将其设置为Symfony服务,以便不会每次都初始化Twig环境。

请注意,在这种情况下,渲染器不会包含任何Symfony的Twig Extensions,您必须手动添加它们。

如果可能,请尝试避免这种情况,并将模板放入src/AppBundle/Resources/views或{{1}}目录。