Bagaimana cara mendapatkan label jenis simpul dari objek simpul?

12

Saya mencoba untuk mendapatkan label bundel (node ​​type label) dari node dari objek node di Drupal 8.

Ini berfungsi, tetapi tampaknya bertele-tele:

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

Apakah ada cara lain untuk mendapatkan label bundel, mungkin dengan cara yang tidak terlalu rumit ?

oknate
sumber
6
$node->type->entity->label();apakah mungkin sedikit lebih anggun? Saya tidak yakin ada versi yang lebih pendek saat ini
Clive
2
Juga berfungsi di templat ranting: {{node.type.entity.label}}
oknate

Jawaban:

14

Kode berikut berfungsi, seperti yang ditunjukkan dari @Clive .

$type_name = $node->type->entity->label();
Tidak ada Sssweat
sumber
Bekerja untukku. Terima kasih
Hassan Farooq
8

Jika Anda membutuhkan nama mesin tipe simpul di templat Ranting:

{{ node.getType }}
Alberto Galvis
sumber
6

Jika Anda ingin label dalam ranting

{{ node.type.entity.label }}
GiorgosK
sumber
5

Coba kode ini.

use Drupal\node\Entity\NodeType;

$types = NodeType::loadMultiple();
$bundle = $node->bundle(); 
$type_name = $types[$bundle]->label();
Tn
sumber
2
Itu memuat semua jenis simpul hanya untuk mendapatkan label satu. sedikit tidak efisien, lebih baik memuat yang Anda inginkan.
Berdir
Setuju! Hanya berdasarkan kode @No Sssweat.
MrD
@Berdir thx untuk menunjukkan itu. Saya tidak ingin bunglon pertanyaan, jadi saya akan meninggalkan ini sebagai jawaban yang diterima. Saya menggunakan kode dalam jawaban saya sendiri sebagai gantinya.
Tidak ada Sssweat
2

Ada fungsi untuk itu

node_get_type_label($node);
Emil Stoianov
sumber