web-dev-qa-db-ja.com

ノードオブジェクトからノードタイプラベルを取得するにはどうすればよいですか?

Drupal 8.のノードオブジェクトからノードのバンドルラベル(ノードタイプラベル)を取得しようとしています.

これは機能しますが、時間がかかるようです:

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

バンドルラベルを取得する別の方法はありますかそれほど複雑ではないの方法で可能ですか?

12
oknate

@ Clive から指摘されているように、次のコードは機能します。

$type_name = $node->type->entity->label();
15
No Sssweat

Twigテンプレートでノードタイプのマシン名が必要な場合:

{{ node.getType }}
8
Alberto Galvis

小枝のラベルが必要な場合

{{ node.type.entity.label }}
6
GiorgosK

このコードを試してください。

use Drupal\node\Entity\NodeType;

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

そのための機能があります

node_get_type_label($node);
2
Emil Stoianov