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


12

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

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

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

より簡単方法でバンドルラベルを取得する別の方法はありますか?


6
$node->type->entity->label();多分もう少し優雅ですか?現在、より短いバージョンがあるかどうかはわかりません
Clive

2
小枝テンプレートでも機能します:{{node.type.entity.label}}
oknate '17年

回答:





5

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

use Drupal\node\Entity\NodeType;

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

2
これは、すべてのノードタイプをロードして、1つのラベルを取得します。少し非効率的で、必要なものをロードするだけの方が良いです。
Berdir 2016年

同意します!@No Sssweatのコードに基づいています。
MrD 2016年

それを指摘してくれた@Berdir thx。私は質問をカメレオンにしたくないので、これを受け入れられた答えのままにします。代わりに自分の答えでコードを使用しています。
2016年

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.