protected EntityResolverManager::setParametersFromEntityInformation(Route $route)
Sets the upcasting information using the _entity_* route defaults.
Supports the '_entity_view' and '_entity_form' route defaults.
Parameters
\Symfony\Component\Routing\Route $route: The route object.
File
- core/lib/Drupal/Core/Entity/EntityResolverManager.php, line 161
Class
- EntityResolverManager
- Sets the entity route parameter converter options automatically.
Namespace
Drupal\Core\Entity
Code
protected function setParametersFromEntityInformation(Route $route) { if ($entity_view = $route->getDefault('_entity_view')) { list($entity_type) = explode('.', $entity_view, 2); } elseif ($entity_form = $route->getDefault('_entity_form')) { list($entity_type) = explode('.', $entity_form, 2); } // Do not add parameter information if the route does not declare a // parameter in the first place. This is the case for add forms, for // example. if (isset($entity_type) && isset($this->getEntityTypes()[$entity_type]) && (strpos($route->getPath(), '{' . $entity_type . '}') !== FALSE)) { $parameter_definitions = $route->getOption('parameters') ? : array(); // First try to figure out whether there is already a parameter upcasting // the same entity type already. foreach ($parameter_definitions as $info) { if (isset($info['type']) && (strpos($info['type'], 'entity:') === 0)) { // The parameter types are in the form 'entity:$entity_type'. list(, $parameter_entity_type) = explode(':', $info['type'], 2); if ($parameter_entity_type == $entity_type) { return; } } } if (!isset($parameter_definitions[$entity_type])) { $parameter_definitions[$entity_type] = array(); } $parameter_definitions[$entity_type] += array( 'type' => 'entity:' . $entity_type, ); if (!empty($parameter_definitions)) { $route->setOption('parameters', $parameter_definitions); } } }
Please login to continue.