diff --git a/src/CL/CustomFieldsBundle/Entity/Adress.php b/src/CL/CustomFieldsBundle/Entity/Adress.php index 9a472f279..b0eb5028e 100644 --- a/src/CL/CustomFieldsBundle/Entity/Adress.php +++ b/src/CL/CustomFieldsBundle/Entity/Adress.php @@ -20,7 +20,7 @@ class Adress public function __toString() { - return $this->data; + return $this->data . '(id:' .$this->id .')'; } /** diff --git a/src/CL/CustomFieldsBundle/Form/DataTransformer/JsonCustomFieldToArrayTransformer.php b/src/CL/CustomFieldsBundle/Form/DataTransformer/JsonCustomFieldToArrayTransformer.php index 029a84c7f..3aa088542 100644 --- a/src/CL/CustomFieldsBundle/Form/DataTransformer/JsonCustomFieldToArrayTransformer.php +++ b/src/CL/CustomFieldsBundle/Form/DataTransformer/JsonCustomFieldToArrayTransformer.php @@ -4,6 +4,7 @@ namespace CL\CustomFieldsBundle\Form\DataTransformer; use Symfony\Component\Form\DataTransformerInterface; use Doctrine\Common\Persistence\ObjectManager; +use Doctrine\Common\Collections\ArrayCollection; class JsonCustomFieldToArrayTransformer implements DataTransformerInterface { /** @@ -28,20 +29,6 @@ class JsonCustomFieldToArrayTransformer implements DataTransformerInterface { $customFieldsByLabel = array_combine($customFieldsLablels, $customFields); - /* - echo "
- 1 -
"; - - var_dump($customFields); - - echo "
- 2 -
"; - - var_dump($customFieldsLablels); - - echo "
- 3 -
"; - - var_dump($customFieldsByLabel); - */ - $this->customField = $customFieldsByLabel; } @@ -56,13 +43,12 @@ class JsonCustomFieldToArrayTransformer implements DataTransformerInterface { } /* - echo "
- 4 -
"; var_dump($customFieldsArray); echo "
- 5 -
"; - ยจ*/ + */ $customFieldsArrayRet = array(); @@ -81,6 +67,8 @@ class JsonCustomFieldToArrayTransformer implements DataTransformerInterface { ->getRepository('CLCustomFieldsBundle:' . $entityClass) ->findOneById($value); $traited = true; + } else if ($type === 'ManyToMany(Adress)') { + $customFieldsArrayRet[$key] = $value; } } @@ -89,7 +77,7 @@ class JsonCustomFieldToArrayTransformer implements DataTransformerInterface { } } - //var_dump($customFieldsArray); + var_dump($customFieldsArrayRet); return $customFieldsArrayRet; } @@ -98,9 +86,10 @@ class JsonCustomFieldToArrayTransformer implements DataTransformerInterface { { /* echo "
- - 7 -
"; + var_dump(array_keys($customFieldsArray)); - + echo "
- - 8 -
"; var_dump(array_keys($this->customField)); @@ -108,6 +97,8 @@ class JsonCustomFieldToArrayTransformer implements DataTransformerInterface { echo "
- - 9 -
"; */ + //var_dump($customFieldsArray); + $customFieldsArrayRet = array(); foreach ($customFieldsArray as $key => $value) { @@ -147,7 +138,7 @@ class JsonCustomFieldToArrayTransformer implements DataTransformerInterface { } - var_dump($customFieldsArrayRet); + //echo json_encode($customFieldsArrayRet); return json_encode($customFieldsArrayRet); } diff --git a/src/CL/CustomFieldsBundle/Form/Type/CustomFieldType.php b/src/CL/CustomFieldsBundle/Form/Type/CustomFieldType.php index 67c52c20b..a664d874f 100644 --- a/src/CL/CustomFieldsBundle/Form/Type/CustomFieldType.php +++ b/src/CL/CustomFieldsBundle/Form/Type/CustomFieldType.php @@ -42,10 +42,31 @@ class CustomFieldType extends AbstractType if($cf->getType() === 'ManyToOne(Adress)') { $builder->add($cf->getLabel(), 'entity', array( 'class' => 'CLCustomFieldsBundle:Adress', - 'property' => 'data', + 'property' => 'data' )); } else if ($cf->getType() === 'ManyToOnePersist(Adress)') { $builder->add($cf->getLabel(), new AdressType()); + } else if($cf->getType() === 'ManyToMany(Adress)') { + + $adress = $this->om + ->getRepository('CLCustomFieldsBundle:Adress') + ->findAll(); + + $adressId = array_map( + function($e) { return $e->getId(); }, + $adress); + + $adressLabel = array_map( + function($e) { return (string) $e; }, + $adress); + + $addressChoices = array_combine($adressId, $adressLabel); + + + $builder->add($cf->getLabel(), 'choice', array( + 'choices' => $addressChoices, + 'multiple' => true + )); } else { $builder->add($cf->getLabel(), $cf->getType());