Как получить метку типа узла от объекта узла?


12

Я пытаюсь получить метку пакета (метку типа узла) узла от объекта узла в Drupal 8.

Это работает, но кажется скучным:

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

Есть ли другой способ получить ярлык комплекта, возможно менее сложным способом?


6
$node->type->entity->label();может быть, немного изящнее? Я не уверен, что есть более короткая версия в настоящее время
Клайв

2
Также работает в шаблоне ветки: {{node.type.entity.label}}
oknate

Ответы:





5

Попробуйте этот код.

use Drupal\node\Entity\NodeType;

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

2
Это загружает все типы узлов только для того, чтобы получить метку одного. немного неэффективно, лучше просто загрузить тот, который вы хотите.
Бердир

Согласен! Это просто основано на коде @No Sssweat.
MrD

@Berdir спасибо за указание на это. Я не хочу хамелеонить вопрос, поэтому я оставлю это как принятый ответ. Вместо этого я использую код в своем собственном ответе.
Нет Sssweat

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.