Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 未从控制器drupal 8呈现模板_Php_Drupal 8 - Fatal编程技术网

Php 未从控制器drupal 8呈现模板

Php 未从控制器drupal 8呈现模板,php,drupal-8,Php,Drupal 8,在自定义Drupal 8模块中,我无法从控制器渲染模板 我调用此控制器方法: public function displayEngineUI() { $build['#theme'] = 'bretagnecom-search-engine'; return $build;} 到达控制器没有问题,我可以在里面转储变量。但不会呈现模板的内容 我的模块文件结构如下所示: bretagnecom\u搜索引擎.module src /src: 控制器 ./src/控制器: DefaultCont

在自定义Drupal 8模块中,我无法从控制器渲染模板

我调用此控制器方法:

  public function displayEngineUI() {
$build['#theme'] = 'bretagnecom-search-engine';

return $build;}
到达控制器没有问题,我可以在里面转储变量。但不会呈现模板的内容

我的模块文件结构如下所示:

bretagnecom\u搜索引擎.module src

/src: 控制器

./src/控制器: DefaultController.php

/模板: bretagnecom-search-engine.html.twig

知道我做错了什么吗?我通常使用内联模板直接从controller呈现一些html,但这次我想在他的模板文件中隔离我的html


谢谢大家的帮助

我猜hook_theme()中没有定义模板

首先,只需将连字符更改为下划线:

public function displayEngineUI() {
  $build['#theme'] = 'bretagnecom_search_engine';
  return $build;
}
在bretagnecom_search_engine.module中添加:

/**
 * Implements hook_theme().
 */
function bretagnecom_search_engine_theme() {
$themes = [
  'bretagnecom_search_engine' => [
    'variables' => [
      'your_custom_variable_1' => NULL,
      'your_custom_variable_2' => NULL
  ]
];
如果没有变量,只需删除该部分代码即可

您可以在此处找到更多信息: