首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只处理数字键的呈现数组

只处理数字键的呈现数组
EN

Drupal用户
提问于 2019-09-24 07:44:37
回答 1查看 103关注 0票数 0

我有一个FieldFormatter,它输出一个DIV、一个表并附加一个JS库。

通常,在Drupal (例如表单API)中,可以根据您的喜好对呈现数组键进行标记吗?奇怪的是,在这种情况下,只有编号似乎是可行的。

如果它是一个错误,我没有发现它,并且日志中没有错误。

FieldFormatter呈现的工作方式有差异吗?

Working数字键:

代码语言:javascript
复制
  public function viewElements(FieldItemListInterface $items, $langcode) {

    // various logic ...

    $build = [];

    $build[0] = [
      // placeholder div for the YouTube player
      '#type' => 'container',
      '#attributes' => [
        'id' => ['youtube-timecode-player'],
      ],
    ];

    // various logic ...

    // attach our timecode.js javascript make the video ID available
    $build[0]['#attached']['library'][] = 'mymodule/youtube_timecode';
    $build[0]['#attached']['drupalSettings']['mymodule']['video_id'] = $video_id;

    $build[1] = [
      '#type' => 'table',
      '#caption' => $this->t('Questions'),
      '#header' => [$this->t('Time'), $this->t('Question')],
      '#rows' => $timecodes
    ];

    return $build;
  }

不工作的文本键(没有输出,也没有错误):

(我将0改为video1改为timecode_list)

代码语言:javascript
复制
public function viewElements(FieldItemListInterface $items, $langcode) {

    // various logic ...

    $build = [];

    $build['video'] = [
        // placeholder div for the YouTube player
        '#type' => 'container',
        '#attributes' => [
            'id' => ['youtube-timecode-player'],
        ],
    ];

    // various logic ...

    // attach our timecode.js javascript make the video ID available
    $build['video']['#attached']['library'][] = 'mymodule/youtube_timecode';
    $build['video']['#attached']['drupalSettings']['mymodule']['video_id'] = $video_id;

    $build['timecode_list'] = [
        '#type' => 'table',
        '#caption' => $this->t('Questions'),
        '#header' => [$this->t('Time'), $this->t('Question')],
        '#rows' => $timecodes
    ];

    return $build;

}
EN

回答 1

Drupal用户

回答已采纳

发布于 2019-09-24 08:13:51

FormatterInterface::viewElement的返回值定义为:

Return值数组用于$items的可呈现数组,它是由从0开始的连续数字索引键控的子元素数组。

主题层无法处理字段值的其他数组,请参见如何打印多值字段的所有值,除第一个值外?

票数 3
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/286672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档