ExtraDataTrait.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace ExtraDataBundle\Entity\Traits;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use Symfony\Component\Validator\Constraints as Assert;
  5. trait ExtraDataTrait
  6. {
  7. /**
  8. * @var string $extraData
  9. *
  10. * @ORM\Column(type="text", nullable=true)
  11. *
  12. * @Assert\Callback(
  13. * callback={"ExtraDataBundle\Validator\JSONValidator", "validate"},
  14. * payload={"field"="extraData"}
  15. * )
  16. */
  17. private $extraData;
  18. /**
  19. * @return string
  20. */
  21. public function getExtraData()
  22. {
  23. return $this->extraData;
  24. }
  25. /**
  26. * @param string $extraData
  27. *
  28. * @return $this
  29. */
  30. public function setExtraData($extraData = null)
  31. {
  32. $this->extraData = $extraData;
  33. return $this;
  34. }
  35. /**
  36. * @return array
  37. */
  38. public function jsonExtraData()
  39. {
  40. return json_decode($this->extraData, true);
  41. }
  42. /**
  43. * @param mixed $extraData
  44. *
  45. * @return ExtraDataTrait
  46. */
  47. public function setJsonExtraData($extraData)
  48. {
  49. return $this->setExtraData(json_encode($extraData));
  50. }
  51. }