You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- <?php
-
- namespace Lc\ShopBundle\Form\DataTransformer;
-
- use Lc\ShopBundle\Context\ProductInterface;
- use Doctrine\ORM\EntityManagerInterface;
- use Symfony\Component\Form\DataTransformerInterface;
- use Symfony\Component\Form\Exception\TransformationFailedException;
-
- class ProductToIdTransformer implements DataTransformerInterface
- {
- private $em ;
-
- public function __construct(EntityManagerInterface $em)
- {
- $this->em = $em;
- }
-
- public function transform($product)
- {
-
- if (null === $product) {
- return '';
- }
-
- return $product->getId();
- }
-
- public function reverseTransform($productId)
- {
- if (!$productId) {
- return;
- }
-
- $product = $this->em->getRepository($this->em->getClassMetadata(ProductInterface::class)->getName())->find($productId);
-
- if (null === $product) {
- throw new TransformationFailedException(sprintf(
- 'An issue with number "%s" does not exist!',
- $productId
- ));
- }
-
- return $product;
- }
- }
|