trait DynamicEntityTypeParamConverterTrait
Same name in other branches
- 9 core/lib/Drupal/Core/ParamConverter/DynamicEntityTypeParamConverterTrait.php \Drupal\Core\ParamConverter\DynamicEntityTypeParamConverterTrait
- 8.9.x core/lib/Drupal/Core/ParamConverter/DynamicEntityTypeParamConverterTrait.php \Drupal\Core\ParamConverter\DynamicEntityTypeParamConverterTrait
- 10 core/lib/Drupal/Core/ParamConverter/DynamicEntityTypeParamConverterTrait.php \Drupal\Core\ParamConverter\DynamicEntityTypeParamConverterTrait
Provides a trait to replace dynamic entity types in routes.
Hierarchy
- trait \Drupal\Core\ParamConverter\DynamicEntityTypeParamConverterTrait
File
-
core/
lib/ Drupal/ Core/ ParamConverter/ DynamicEntityTypeParamConverterTrait.php, line 8
Namespace
Drupal\Core\ParamConverterView source
trait DynamicEntityTypeParamConverterTrait {
/**
* Determines the entity type ID given a route definition and route defaults.
*
* @param mixed $definition
* The parameter definition provided in the route options.
* @param string $name
* The name of the parameter.
* @param array $defaults
* The route defaults array.
*
* @return string
* The entity type ID.
*
* @throws \Drupal\Core\ParamConverter\ParamNotConvertedException
* Thrown when the dynamic entity type is not found in the route defaults.
*/
protected function getEntityTypeFromDefaults($definition, $name, array $defaults) {
$type_part = strstr($definition['type'], ':');
if (!$type_part) {
throw new ParamNotConvertedException(sprintf('The type definition "%s" is invalid. The expected format is "entity_revision:<entity_type_id>".', $definition['type']));
}
$entity_type_id = substr($type_part, 1);
// If the entity type is dynamic, it will be pulled from the route defaults.
if (str_starts_with($entity_type_id, '{')) {
$entity_type_slug = substr($entity_type_id, 1, -1);
if (!isset($defaults[$entity_type_slug])) {
throw new ParamNotConvertedException(sprintf('The "%s" parameter was not converted because the "%s" parameter is missing.', $name, $entity_type_slug));
}
$entity_type_id = $defaults[$entity_type_slug];
}
return $entity_type_id;
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
DynamicEntityTypeParamConverterTrait::getEntityTypeFromDefaults | protected | function | Determines the entity type ID given a route definition and route defaults. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.