content_entity_base-8.x-1.x-dev/src/Entity/Routing/CrudUiRouteProvider.php

src/Entity/Routing/CrudUiRouteProvider.php
<?php

namespace Drupal\content_entity_base\Entity\Routing;

use Drupal\Core\Entity\EntityTypeInterface;
use Drupal\Core\Entity\Routing\EntityRouteProviderInterface;
use Symfony\Component\Routing\Route;

/**
 * Additional common routes needed for a CRUD UI.
 *
 * - add bundle page
 * - a collection page.
 */
class CrudUiRouteProvider extends CreateHtmlRouteProvider implements EntityRouteProviderInterface {

  /**
   * {@inheritdoc}
   */
  public function getRoutes(EntityTypeInterface $entity_type) {
    $routes = parent::getRoutes($entity_type);

    $routes->add('entity.' . $entity_type->id() . '.collection', $this->collectionRoute($entity_type));

    return $routes;
  }

  protected function collectionRoute(EntityTypeInterface $entity_type) {
    $route = new Route($entity_type->getLinkTemplate('collection'));
    $route->setDefault('_title', $entity_type->getLabel() . ' content');
    $route->setDefault('_entity_list', $entity_type->id());
    $route->setRequirement('_permission', 'administer ' . $entity_type->id());
    return $route;
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc