I'm working on Drupal 8. And I want to get content type machine name and label. Here is my code:
$cont_type = node_type_get_types();
foreach ($cont_type as $key => $value) {
$label = $value->name;
$machine_name = $key;
}
Here I got an error message : Cannot access protected property Drupal\node\Entity\NodeType::$name
In order to get current content type:
$node = \Drupal::routeMatch()->getParameter('node');
$typeName = $node->bundle();
$typeLabel = $node->getTitle();
There is an alternative method.
$node = \Drupal::request()->attributes->get('node')
<?php
use Drupal\node\Entity\NodeType;
?>
<?php
$all_content_types = NodeType::loadMultiple();
/** @var NodeType $content_type */
foreach ($all_content_types as $machine_name => $content_type) {
$label = $content_type->label();
}
?>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With