将数组或JSON传递给Drupal 8 twig显示模板

时间:2016-11-18 20:30:32

标签: drupal twig

您好:我已经浏览了Drupal网站上的一些文档和twig文档并且卡住了。我收到了错误:

  

用户错误:" foo"是Drupal \ Core \ Render \ Element :: children()中的无效渲染数组键(core \ lib \ Drupal \ Core \ Render \ Element.php的第97行)。   用户错误:" bar"是Drupal \ Core \ Render \ Element :: children()中的无效渲染数组键(core \ lib \ Drupal \ Core \ Render \ Element.php的第97行)。

我正在尝试将数组传递给twig模板变量:

$array = array(
        "foo" => "bar",
        "bar" => "foo",
    );

$element = array(
'#theme' => 'event_formatter',
'#events_result' => $array,
);

.module文件中的配置如下所示:

    return array(
    'event_formatter' => array(
        'variables' => array('events_result' => []),
        'template' => 'event-formatter',
    ),

传递一个字符串变量似乎很好。

谢谢!

1 个答案:

答案 0 :(得分:0)

你回来了$ element吗?

以下是我的一个模块的示例:

#ChallengeController

$challengeService = $this->challengeService;

return [
  '#theme'   => 'my_module_challenge_list',
  '#challenges' => $challengeService->getTrainerChallenges()
];

然后

#my_module.module
  'my_module_challenge_list' => array(
      'variables' => array('challenges' => NULL),
    ),