$ twig-> render()异常 - 参数必须是数组,给定字符串

时间:2017-09-20 08:06:06

标签: php symfony twig

如果此函数中某些条件为真,我正在尝试返回渲染模板:

* @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是数组,所以我不明白。有什么想法吗?

2 个答案:

答案 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解析它收到的每个参数,并且无法解析' []'数组的符号,因此问题。