Drupal 8-Twig模板不会获取变量值

时间:2019-05-01 08:44:23

标签: twig drupal-8 drupal-blocks drupal-templates

我正在尝试制作一个树枝模板以从自定义块中获取变量,当我执行{{ dumb() }}时,它会向我显示变量及其值,但是当我调用该变量时,它将不会显示即使我用哑{{ dumb(title) }}调用变量,它也告诉我是NULL。谁能帮我理解这是什么错误?

阻止:onyx_experiencia.php

/**
 * Provides a 'Test' Block.
 *
 * @Block(
 *   id = "onyx_experiencia",
 *   admin_label = @Translation("Servicios OnyxGroup"),
 *   category = @Translation("Servicios OnyxGroup"),
 * )
 */
class onyx_experiencia extends BlockBase implements BlockPluginInterface {

 /**
   * {@inheritdoc}
   */  
  public function build() {
      $title = 'TestTitle34';
      $desc = 'Test text 24';
      $test_array = array(
            '#title' => $title,
            '#description' => $desc
        );

      return $test_array;

  }

block.module :onyx_experiencia.module

<?php
/**
 * Implements hook_theme().
 */
function onyx_experiencia_theme($existing, $type, $theme, $path) {

    return array(
        'block__serviciosonyxgroup' => array(
            'template' => 'block--serviciosonyxgroup',
            'render element' => 'elements',
            'variables' => array(
                'title' => 'TitleTest',
                'description' => 'DescriptionTest'
            ),
        ),
    );
}

树枝文件:block--serviciosonyxgroup.html.twig

{#
/**
 * @file
 * Profile for onyx_experiencia block.
 */
#}

<h3>Featured Events</h3>
<p>Test: {{ title }} </p>
<p>Test: {{ description }} </p>

<ol>
  {% for key, value in _context  %}
    <li>{{ key }}</li>
  {% endfor %}
</ol>

{{ dump(content) }}

结果:这是我得到的结果 enter image description here

  

更新仍然无法使用其他方式

enter image description here

1 个答案:

答案 0 :(得分:0)

如您的屏幕截图所示:

变量位于变量content中,而不位于_context
您当前的模板代码假定它们在实时_context中,尽管它们没有任何前缀。

{{ title }}等于<?= isset($_context['title']) ? $_context['title'] : null; ?>

因此您需要将模板更改为类似的

<h3>Featured Events</h3>
<p>Test: {{ content['#title'] }} </p>
<p>Test: {{ content['#description'] }} </p>