You are here

class DeleteMultipleRouteProvider in Entity API 8

Same name and namespace in other branches
  1. 8.0 src/Routing/DeleteMultipleRouteProvider.php \Drupal\entity\Routing\DeleteMultipleRouteProvider

Provides the HTML route for deleting multiple entities.

Hierarchy

Expanded class hierarchy of DeleteMultipleRouteProvider

Deprecated

Since Drupal 8.6.x the core DefaultHtmlRouteProvider provides the route for any entity type with a "delete-multiple-form" link template and a "delete-multiple-confirm" form.

File

src/Routing/DeleteMultipleRouteProvider.php, line 17

Namespace

Drupal\entity\Routing
View source
class DeleteMultipleRouteProvider implements EntityRouteProviderInterface {

  /**
   * {@inheritdoc}
   */
  public function getRoutes(EntityTypeInterface $entity_type) {
    $routes = new RouteCollection();
    if ($route = $this
      ->deleteMultipleFormRoute($entity_type)) {
      $routes
        ->add('entity.' . $entity_type
        ->id() . '.delete_multiple_form', $route);
    }
    return $routes;
  }

  /**
   * Returns the delete multiple form route.
   *
   * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
   *   The entity type.
   *
   * @return \Symfony\Component\Routing\Route|null
   *   The generated route, if available.
   */
  protected function deleteMultipleFormRoute(EntityTypeInterface $entity_type) {

    // Core requires a "delete-multiple-confirm" form to be declared as well,
    // if it's missing, it's safe to assume that the entity type is still
    // relying on previous Entity API contrib behavior.
    if ($entity_type
      ->hasLinkTemplate('delete-multiple-form') && !$entity_type
      ->hasHandlerClass('form', 'delete-multiple-confirm')) {
      $route = new Route($entity_type
        ->getLinkTemplate('delete-multiple-form'));
      $route
        ->setDefault('_form', '\\Drupal\\entity\\Form\\DeleteMultipleForm');
      $route
        ->setDefault('entity_type_id', $entity_type
        ->id());
      $route
        ->setRequirement('_entity_delete_multiple_access', $entity_type
        ->id());
      return $route;
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
DeleteMultipleRouteProvider::deleteMultipleFormRoute protected function Returns the delete multiple form route.
DeleteMultipleRouteProvider::getRoutes public function Provides routes for entities. Overrides EntityRouteProviderInterface::getRoutes