我想为我的自定义模块制作一个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'
答案 0 :(得分:0)
这必须有效:
$renderable = [
'#theme' => 'nextprev_template',
'#nextprev' => $nextprevlinks,
];
但是我认为,如果从控制器返回可渲染数组,那么它会变得更好:
return [
'#theme' => 'nextprev_template',
'#nextprev' => $nextprevlinks,
];