123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- <?php
- namespace ExtraDataBundle\Entity\Traits;
- use Doctrine\ORM\Mapping as ORM;
- use Symfony\Component\Validator\Constraints as Assert;
- trait ExtraDataTrait
- {
- /**
- * @var string $extraData
- *
- * @ORM\Column(type="text", nullable=true)
- *
- * @Assert\Callback(
- * callback={"ExtraDataBundle\Validator\JSONValidator", "validate"},
- * payload={"field"="extraData"}
- * )
- */
- private $extraData;
- /**
- * @return string
- */
- public function getExtraData()
- {
- return $this->extraData;
- }
- /**
- * @param string $extraData
- *
- * @return $this
- */
- public function setExtraData($extraData = null)
- {
- $this->extraData = $extraData;
- return $this;
- }
- /**
- * @return array
- */
- public function jsonExtraData()
- {
- return json_decode($this->extraData, true);
- }
- /**
- * @param mixed $extraData
- *
- * @return ExtraDataTrait
- */
- public function setJsonExtraData($extraData)
- {
- return $this->setExtraData(json_encode($extraData));
- }
-
- /**
- * @param string $key
- *
- * @return mixed
- */
- public function getData($key)
- {
- $extraData = $this->jsonExtraData();
- $value = null;
- if (isset($extraData[$key])) {
- $value = $extraData[$key];
- }
-
- return $value;
- }
- }
|