Làm thế nào để tôi có được nhãn loại nút từ một đối tượng nút?


12

Tôi đang cố gắng để có được nhãn bó (nhãn loại nút) của nút từ một đối tượng nút trong Drupal 8.

Điều này hoạt động, nhưng có vẻ dài dòng:

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

Có cách nào khác để lấy nhãn bó, có thể theo cách ít phức tạp hơn không?


6
$node->type->entity->label();duyên dáng hơn một chút có lẽ? Tôi không chắc chắn có phiên bản ngắn hơn hiện tại
Clive

2
Cũng hoạt động trong mẫu twig: {{node.type.entity.label}}
oknate

Câu trả lời:



8

Trong trường hợp bạn cần tên máy kiểu nút trong mẫu Twig:

{{ node.getType }}

6

Nếu bạn muốn nhãn trong twig

{{ node.type.entity.label }}

5

Hãy thử mã này.

use Drupal\node\Entity\NodeType;

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

2
Điều đó tải tất cả các loại nút chỉ để có được nhãn của một. một chút không hiệu quả, tốt hơn là chỉ tải cái bạn muốn.
Berdir

Đồng ý! Nó chỉ dựa trên mã của @Không Sssweat.
MrD

@Berdir thx đã chỉ ra điều đó. Tôi không muốn tắc kè hoa câu hỏi, vì vậy tôi sẽ để câu hỏi này là câu trả lời được chấp nhận. Tôi đang sử dụng mã trong câu trả lời của riêng tôi thay vào đó.
Không có Sssweat

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.