如何在树枝上打印php变量?

时间:2017-11-24 13:32:12

标签: drupal twig drupal-8 kint

我想为我的自定义模块制作一个twig模板,输出Next和Previous文章链接。

在我的.module文件中我有

<?php
/**
 * @file
 * Code for the nextprev module.
 */
 function nextprev_theme($existing, $type, $theme, $path) {
   return [
      'nextprev_template' => [
        'variables'=> [
                'nextprev' => 'Some_value',
            ],
    ],
  ];
  }

在我的控制器文件中,我使用

  public function build() {
    /**
      * {@inheritdoc}
      */

      $node = \Drupal::request()->attributes->get('node');
      $created_time = $node->getCreatedTime();
      $nextprevlinks .= $this->generateNext($created_time);
      $nextprevlinks .= $this->generatePrevious($created_time);

      $renderable = [
        '#theme' => 'nextprev_template',
        '#nextprev' => 'nextprevlinks',
      ];
      $rendered = drupal_render($renderable);

    }

}

我想打开我的$ nextprevlinks in twig {{nextprev}}

我已经在我的模块文件夹中创建了twig模板,但是它工作正常,但是我无法打印出我的{{nextprev}}变量,当我使用kint时它会返回Null。

我还添加了nextprev.routing.yml:

nextprev.block:
  path: /node
  defaults:
    _controller: Drupal\nextprev\Controller\NextPrevLinksBlock::build
  requirements:
    _permission: 'access content'

1 个答案:

答案 0 :(得分:0)

这必须有效:

$renderable = [
    '#theme' => 'nextprev_template',
    '#nextprev' => $nextprevlinks,
  ];

但是我认为,如果从控制器返回可渲染数组,那么它会变得更好:

return [
  '#theme' => 'nextprev_template',
  '#nextprev' => $nextprevlinks,
];