访问自定义模板中的Drupal实体字段

马塔齐

首先,我要说这是我在Drupal中的第一个项目,我仍然感到困惑,如果我的问题很愚蠢,我深表歉意。

我使用实体API在Drupal 7中创建了一个自定义实体。定制实体代表高尔夫球场。

我使用了本教程:http : //www.sitepoint.com/series/build-your-own-custom-entities-in-drupal/然后,我尝试添加自定义主题,为此,我遵循以下步骤:https:/ /www.drupal.org/node/1238606

我的回调函数如下所示:

function view_golf_course($id) {
  $courses = entity_load('golf_course', array($id));
  $course = $courses[$id];
  drupal_set_title($course->name);
  $output = entity_view('golf_course', array($course));
  $output += array(
    '#theme'     => 'golf_course',
    '#element'   => $output,
    '#view_mode' => 'full',
    '#language'  => LANGUAGE_NONE,
  );
  return $output;
}

这是我的hook_theme()

function golf_course_theme($existing, $type, $theme, $path) {
  return array(
    'golf_course' => array(
      'variables' => array('element' => null),
      'template' => 'golf_course',
    ),
  );
}

问题在于,golf_course.tpl.php我只能以这种方式访问​​高尔夫球场变量(在此示例中,我将访问地址):

render($element['golf_course']['The Lakes Golf Club']['address']['#markup'])

如您所见,要访问该地址,我必须使用“ The Lakes Golf Club”(这是当前显示的高尔夫球场的名称)作为键,但是很明显,每次我更改该名称时,显示一个不同的高尔夫球场,所以我的问题是:

如何在不必使用高尔夫球场名称作为键的情况下访问高尔夫球场属性?

编辑

用于Entity_view()的文档(http://www.drupalcontrib.org/api/drupal/contributions!entity!entity.module/function/entity_view/7)表示以下内容:

返回值

用实体类型和实体标识符作为关键字的可渲染数组,如果存在实体名称,则使用该实体名称-请参见entity_id()。如果没有有关如何查看实体的信息,则返回FALSE。

因此,如何避免使用实体名称作为数组的键?如果它是由id键入的,那是可以的,因为我$id在范围内变量。

马塔齐

对于寻找以下问题的答案的任何人:如果查询的结果集包含多个行,那么Entity_view将创建一个带有空索引的数组,如下所示:

$element['golf_course']['']

现在您可以通过访问['#entity']数组来访问结果集中所有行的所有实体字段,如下所示:

$element['golf_course']['']['#entity'] // all golf courses
$element['golf_course']['']['#entity'][0] // first golf course in the result set
$element['golf_course']['']['#entity'][0]['label'] // label of first golf course
$element['golf_course']['']['#entity'][0]['address'] // address of first golf course

附带说明一下,如果您的模板是纯PHP格式,则可以避免使用entity_view(),您将获得一个更整洁的数组(您没有该['golf_course']['']['#entity']部分)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Drupal 7-用数据库中的图像填充自定义表单图像字段

来自分类Dev

如何在Drupal 7中使用自定义字段构建Webform?

来自分类Dev

找不到Drupal自定义实体页面

来自分类Dev

如何从Polymer模板中访问自定义元素的主体?

来自分类Dev

Drupal 7 Views自定义视图模板字段

来自分类Dev

使用hook_menu的Drupal 7自定义模板

来自分类Dev

在Genesis Framework模板中添加高级自定义字段字段

来自分类Dev

Haskell访问自定义数据类型中的字段

来自分类Dev

对Sylius中的新实体及其ResourceBundle使用自定义模板

来自分类Dev

在freemarker中访问链接的自定义字段值

来自分类Dev

在自定义JsonValidator中访问字段父级

来自分类Dev

Drupal 8:如何自定义表单窗口小部件以显示实体字段值而不是实体标题?

来自分类Dev

Drupal 8自定义模板内容类型表单页面

来自分类Dev

Drupal 8中的自定义404模板文件

来自分类Dev

在Drupal中显示来自自定义字段的原始文本

来自分类Dev

Drupal 8.9.8更新自定义实体名称长度

来自分类Dev

找不到Drupal自定义实体页面

来自分类Dev

Drupal 7 Views自定义视图模板字段

来自分类Dev

引用Kendo Scheduler的自定义事件模板中的字段

来自分类Dev

在自定义JsonValidator中访问字段父级

来自分类Dev

Drupal 7中的“自定义移动菜单”无法访问子链接

来自分类Dev

如何以编程方式呈现drupal 7 page.tpl.php中的自定义字段?

来自分类Dev

Drupal 8自定义模板内容类型表单页面

来自分类Dev

SuiteScript 访问子列表中的自定义字段

来自分类Dev

添加用于模板的自定义字段

来自分类Dev

访问模板 html 模板中的自定义属性

来自分类Dev

在 Docusign 中从模板中检索自定义字段

来自分类Dev

在模板中显示自定义帖子类型中的自定义字段

来自分类Dev

如何在 drupal 8 中使用自定义块中的字段

Related 相关文章

  1. 1

    Drupal 7-用数据库中的图像填充自定义表单图像字段

  2. 2

    如何在Drupal 7中使用自定义字段构建Webform?

  3. 3

    找不到Drupal自定义实体页面

  4. 4

    如何从Polymer模板中访问自定义元素的主体?

  5. 5

    Drupal 7 Views自定义视图模板字段

  6. 6

    使用hook_menu的Drupal 7自定义模板

  7. 7

    在Genesis Framework模板中添加高级自定义字段字段

  8. 8

    Haskell访问自定义数据类型中的字段

  9. 9

    对Sylius中的新实体及其ResourceBundle使用自定义模板

  10. 10

    在freemarker中访问链接的自定义字段值

  11. 11

    在自定义JsonValidator中访问字段父级

  12. 12

    Drupal 8:如何自定义表单窗口小部件以显示实体字段值而不是实体标题?

  13. 13

    Drupal 8自定义模板内容类型表单页面

  14. 14

    Drupal 8中的自定义404模板文件

  15. 15

    在Drupal中显示来自自定义字段的原始文本

  16. 16

    Drupal 8.9.8更新自定义实体名称长度

  17. 17

    找不到Drupal自定义实体页面

  18. 18

    Drupal 7 Views自定义视图模板字段

  19. 19

    引用Kendo Scheduler的自定义事件模板中的字段

  20. 20

    在自定义JsonValidator中访问字段父级

  21. 21

    Drupal 7中的“自定义移动菜单”无法访问子链接

  22. 22

    如何以编程方式呈现drupal 7 page.tpl.php中的自定义字段?

  23. 23

    Drupal 8自定义模板内容类型表单页面

  24. 24

    SuiteScript 访问子列表中的自定义字段

  25. 25

    添加用于模板的自定义字段

  26. 26

    访问模板 html 模板中的自定义属性

  27. 27

    在 Docusign 中从模板中检索自定义字段

  28. 28

    在模板中显示自定义帖子类型中的自定义字段

  29. 29

    如何在 drupal 8 中使用自定义块中的字段

热门标签

归档