Advertisement
Guest User

Untitled

a guest
Jun 28th, 2016
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.60 KB | None | 0 0
  1. <?php
  2.  
  3. namespace SlashCreation\Bundles\Compta\Form\DataTransformer;
  4.  
  5. use Doctrine\Common\Persistence\ObjectManager;
  6. use Symfony\Component\Form\DataTransformerInterface;
  7. use Symfony\Component\Form\Exception\TransformationFailedException;
  8.  
  9. /**
  10. * Transformer l'entité Client pour obtenir son identité(string)
  11. * A partir de son identité(string) retrouver l'entité Client
  12. */
  13. class identityClientTransformer implements DataTransformerInterface {
  14.  
  15. private $manager;
  16.  
  17. public function __construct(ObjectManager $manager) {
  18. $this->manager = $manager;
  19. }
  20.  
  21. /**
  22. * Transforme l'entité client en retournant son identité
  23. * Return String
  24. */
  25. public function transform($entity) {
  26. if (null === $entity) {
  27. return '';
  28. }
  29.  
  30. return $entity->getIdentity();
  31. }
  32.  
  33. /**
  34. * La valeur de l'input du formulaire(string) est utilisé pour retrouver l'entité.
  35. * Return Entity
  36. */
  37. public function reverseTransform($value) {
  38. if (!$value) {
  39. return;
  40. }
  41. // Recherche du numéro de référence du client contenu dans l'input, le numéro se trouvant entre les ( #number )
  42. $output = array();
  43. preg_match('/\((.*?)\)/', $value, $output);
  44.  
  45. $entity = $this->manager
  46. ->getRepository('Compta:Client')
  47. ->findOneBy(array('ref' => $output[1]))
  48. ;
  49.  
  50. if (null === $entity) {
  51. throw new TransformationFailedException(sprintf(
  52. 'Le numéro de référence "%s" n\'existe pas!', $output
  53. ));
  54. }
  55.  
  56. return $entity;
  57. }
  58.  
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement