我的模块中的自定义页面模板有问题。
我使用hook_theme()
来定义我的twig文件。当我签入hook_theme_registry_alter()
时,我会看到我的新模板文件,但是当我尝试使用它时,它无效。
我的代码:
file:first.module
/**
* Implement hook_theme().
*/
function first_theme($existing, $type, $theme, $path) {
return array(
'testtwig' => array(
'template' => 'testtwig',
'variables' => array('test_var' => NULL),
),
);
}
控制器:
/**
* @file
* Contains \Drupal\first\Controller\FirstController.
*/
namespace Drupal\first\Controller;
use Drupal\Core\Controller\ControllerBase;
class FirstController extends ControllerBase {
public function content() {
return array(
'#theme' => 'testtwig',
'#test_var' => t('sss'), //$output,
);
}
}
错误:
模板“modules / custom / first / templates / testtwig.html.twig”不是 已定义(Drupal \ Core \ Template \ Loader \ ThemeRegistryLoader:无法使用 在中查找模板“modules / custom / first / templates / testtwig.html.twig” Drupal主题注册表。)。
答案 0 :(得分:0)
//。module文件
<?php
/**
* Implements hook_theme().
*/
function MODULE_theme($existing, $type, $theme, $path) {
return [
'site_framework_display' => [
'variables' => ['test_var' => NULL],
'template' => 'page--site-framework',
],
];
}
//控制器
<?php
namespace Drupal\MODULE\Controller;
use Drupal\Core\Controller\ControllerBase;
class MODULEController extends ControllerBase {
public function getVersion() {
return [
'#theme' => 'site_framework_display',
//'#test_var' => \DRUPAL::VERSION,
'#test_var' => 'hello guys'
];
}
}