commerce_api-8.x-1.x-dev/src/ParamConverter/EntityUuidConverter.php

src/ParamConverter/EntityUuidConverter.php
<?php

declare(strict_types=1);

namespace Drupal\commerce_api\ParamConverter;

use Drupal\Component\Uuid\Uuid;
use Drupal\Core\ParamConverter\EntityConverter;
use Symfony\Component\Routing\Route;

final class EntityUuidConverter extends EntityConverter {

  /**
   * {@inheritdoc}
   */
  public function convert($value, $definition, $name, array $defaults) {
    $entity_type_id = $this->getEntityTypeFromDefaults($definition, $name, $defaults);
    if (Uuid::isValid($value)) {
      $entity = $this->entityRepository->loadEntityByUuid($entity_type_id, $value);
      if ($entity === NULL) {
        return NULL;
      }
      $entity_id = $entity->id();
    }
    else {
      $entity_id = $value;
    }
    return $this->entityRepository->getCanonical($entity_type_id, $entity_id);
  }

  /**
   * {@inheritdoc}
   */
  public function applies($definition, $name, Route $route) {
    return strpos($name, 'commerce_') === 0;
  }

}

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

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