diff --git a/modules/salesforce_mapping_ui/src/Controller/MappedObjectController.php b/modules/salesforce_mapping_ui/src/Controller/MappedObjectController.php index f3a7ddc48c5e2da4e7b17e5fe09676b96e0d3832..687e452bcf2bf236ddf3a347448bcbe1d5f65b48 100644 --- a/modules/salesforce_mapping_ui/src/Controller/MappedObjectController.php +++ b/modules/salesforce_mapping_ui/src/Controller/MappedObjectController.php @@ -44,8 +44,14 @@ class MappedObjectController extends ControllerBase { return AccessResult::forbidden(); } - // There must be a better way to get the entity from a route match. - $param = current($this->route->getParameters()->all()); + $param = null; + $parameter_info = $this->route->getRouteObject()->getOption('parameters'); + foreach ($parameter_info as $name => $options) { + if (isset($options['type']) && str_starts_with($options['type'], 'entity:')) { + $param = $this->route->getParameter($name); + continue 1; + } + } if (!is_object($param)) { return AccessResult::forbidden(); }