Як отримати мітку типу вузла від об'єкта вузла?


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

Відповіді:




6

Якщо ви хочете, щоб етикетка була в гілочці

{{ node.type.entity.label }}

5

Спробуйте цей код.

use Drupal\node\Entity\NodeType;

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

2
Це завантажує всі типи вузлів просто для отримання мітки одного. трохи неефективно, краще просто завантажити той, який ви хочете.
Бердір

Погодьтеся! Це просто основа на коді @No Sssweat.
MrD

@Berdir thx для вказівки на це. Я не хочу хамелеона запитувати, тому залишу це як прийняту відповідь. Я замість цього використовую код у власній відповіді.
Без розмивання

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.