diff --git a/core/lib/Drupal/Core/Entity/EntityCreateAccessCheck.php b/core/lib/Drupal/Core/Entity/EntityCreateAccessCheck.php index bdb5edb..5314e7a 100644 --- a/core/lib/Drupal/Core/Entity/EntityCreateAccessCheck.php +++ b/core/lib/Drupal/Core/Entity/EntityCreateAccessCheck.php @@ -53,8 +53,9 @@ public function appliesTo() { public function access(Route $route, Request $request) { list($entity_type, $bundle) = explode(':', $route->getRequirement($this->requirementsKey) . ':'); - // The bundle argument can contain request arguments like {name}, - // replace those with the raw value of that argument. + // The bundle argument can contain request argument placeholders like + // {name}, loop over the raw variables and attempt to replace them in the + // bundle name. If a placeholder does not exist, it won't get replaced. if ($bundle && strpos($bundle, '{') !== FALSE) { foreach ($request->get('_raw_variables')->all() as $name => $value) { $bundle = str_replace('{' . $name . '}', $value, $bundle);