From 1d9f10d42cefac0fab647d236ccc1f9681a4b1ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=CC=87smail=20BASKIN?= Date: Tue, 6 Oct 2015 17:31:58 +0300 Subject: [PATCH 1/2] Add missing doctrine dependency --- composer.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index be6e381..f8e7337 100644 --- a/composer.json +++ b/composer.json @@ -11,7 +11,8 @@ } ], "require": { - "symfony/symfony": ">=2.2" + "symfony/symfony": ">=2.2", + "doctrine/orm": ">=2.2" }, "autoload": { "psr-0": { "Tetranz\\Select2EntityBundle": "" } From 45cfef2cd17d95b205582a6d6b89a8925613f85e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=CC=87smail=20BASKIN?= Date: Tue, 6 Oct 2015 17:34:12 +0300 Subject: [PATCH 2/2] Use property accessor component for extensible textProperty --- Form/DataTransformer/EntitiesToPropertyTransformer.php | 7 +++++-- Form/DataTransformer/EntityToPropertyTransformer.php | 10 +++++++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/Form/DataTransformer/EntitiesToPropertyTransformer.php b/Form/DataTransformer/EntitiesToPropertyTransformer.php index 21bd092..c5a891f 100644 --- a/Form/DataTransformer/EntitiesToPropertyTransformer.php +++ b/Form/DataTransformer/EntitiesToPropertyTransformer.php @@ -5,6 +5,7 @@ use Doctrine\Common\Collections\ArrayCollection; use Doctrine\ORM\EntityManager; use Symfony\Component\Form\DataTransformerInterface; +use Symfony\Component\PropertyAccess\PropertyAccess; /** * Data transformer for multiple mode (i.e., multiple = true) @@ -40,14 +41,16 @@ public function transform($entities) // return an array of initial values as html encoded json $data = array(); + $accessor = PropertyAccess::createPropertyAccessor(); + foreach($entities as $entity) { $text = is_null($this->textProperty) ? (string) $entity - : $entity->{'get' . $this->textProperty}(); + : $accessor->getValue($entity, $this->textProperty); $data[] = array( - 'id' => $entity->getId(), + 'id' => $accessor->getValue($entity, 'id'), 'text' => $text ); } diff --git a/Form/DataTransformer/EntityToPropertyTransformer.php b/Form/DataTransformer/EntityToPropertyTransformer.php index 2ea0318..9183bd2 100644 --- a/Form/DataTransformer/EntityToPropertyTransformer.php +++ b/Form/DataTransformer/EntityToPropertyTransformer.php @@ -4,6 +4,7 @@ use Doctrine\ORM\EntityManager; use Symfony\Component\Form\DataTransformerInterface; +use Symfony\Component\PropertyAccess\PropertyAccess; /** * Data transformer for single mode (i.e., multiple = false) @@ -36,14 +37,16 @@ public function transform($entity) return ''; } + $accessor = PropertyAccess::createPropertyAccessor(); + // return the initial values as html encoded json $text = is_null($this->textProperty) - ? (string) $entity - : $entity->{'get' . $this->textProperty}(); + ? (string)$entity + : $accessor->getValue($entity, $this->textProperty); $data = array( - 'id' => $entity->getId(), + 'id' => $accessor->getValue($entity, 'id'), 'text' => $text ); @@ -63,6 +66,7 @@ public function reverseTransform($value) } $repo = $this->em->getRepository($this->className); + return $repo->find($value); } }