노드 객체에서 노드 유형 레이블을 얻는 방법은 무엇입니까?


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

답변:





5

이 코드를 사용해보십시오.

use Drupal\node\Entity\NodeType;

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

2
모든 노드 유형을로드하여 하나의 레이블을 가져옵니다. 조금 비효율적이며 원하는 것을로드하는 것이 좋습니다.
Berdir

동의하다! @No Sssweat의 코드를 기반으로합니다.
MrD

지적하기위한 @ Berdir thx. 나는 질문을 카멜레온하고 싶지 않기 때문에 이것을 대답으로 남겨 두겠습니다. 대신 내 답변에 코드를 사용하고 있습니다.
No Sssweat

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.