如何从节点对象获取节点类型标签?


12

我正在尝试从Drupal 8中的节点对象获取节点的捆绑标签(节点类型标签)。

这行得通,但似乎long之以鼻:

$node_type = \Drupal::entityManager()->getStorage('node_type')->load($node->getType())->get('name');

是否有另一种方式来获得捆绑标签,可能在一个不太复杂的方法吗?


6
$node->type->entity->label();也许更优雅一点?我不确定目前是否有较短的版本
Clive

2
也可在树枝模板中使用:{{node.type.entity.label}}
oknate,

Answers:





5

试试这个代码。

use Drupal\node\Entity\NodeType;

$types = NodeType::loadMultiple();
$bundle = $node->bundle(); 
$type_name = $types[$bundle]->label();

2
加载所有节点类型只是为了获得一个标签。效率低下,最好只加载您想要的那个。
贝尔迪尔

同意!它只是基于@No Sssweat的代码。
MrD

@Berdir thx指出了这一点。我不想变色,所以我将其保留为已接受的答案。我在自己的答案中使用代码。
没有Sssweat

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.