如果此函数中某些条件为真,我正在尝试返回渲染模板:
* @Route("/results", name="front.tour.results")
* @Template
*/
public function indexAction(Request $request, $countryUrl=NULL, $placeUrl=NULL)
{
...
if(condition) {
$twig = $this->get('twig');
return $twig->render('@App/FrontModule/Tour/hotelList.html.twig', [
'allPossiblePlaces' => $allPossiblePlaces
]);
}
但是我收到了消息的异常:
参数2传递给 Symfony \ Bundle \ TwigBundle \ TwigEngine :: renderResponse()必须是 type array,给定的字符串
我100%确定变量$allPossiblePlaces
是数组,所以我不明白。有什么想法吗?
答案 0 :(得分:1)
试试这个:
* @Route("/results", name="front.tour.results")
* @Template
*/
public function indexAction(Request $request, $countryUrl=NULL, $placeUrl=NULL)
{
...
if(condition) {
return $this->render('@App/FrontModule/Tour/hotelList.html.twig', [
'allPossiblePlaces' => $allPossiblePlaces
]);
}
如果您想了解Symfony中有关视图引擎的更多功能,请阅读以下文档:https://symfony.com/doc/2.7/components/templating.html
答案 1 :(得分:-12)
将您的行更改为
return $twig->render('@App/FrontModule/Tour/hotelList.html.twig', array(
'allPossiblePlaces' => $allPossiblePlaces
));
它会起作用。
基本上,它是一个语法问题。 Twig解析它收到的每个参数,并且无法解析' []'数组的符号,因此问题。