diff --git a/src/CL/CustomFieldsBundle/Controller/BlopEntityController.php b/src/CL/CustomFieldsBundle/Controller/BlopEntityController.php index 0e8fdfbfb..64e43035e 100644 --- a/src/CL/CustomFieldsBundle/Controller/BlopEntityController.php +++ b/src/CL/CustomFieldsBundle/Controller/BlopEntityController.php @@ -7,6 +7,7 @@ use Symfony\Bundle\FrameworkBundle\Controller\Controller; use CL\CustomFieldsBundle\Entity\BlopEntity; use CL\CustomFieldsBundle\Form\BlopEntityType; +use CL\CustomFieldsBundle\Form\AdressType; /** * BlopEntity controller. @@ -15,6 +16,48 @@ use CL\CustomFieldsBundle\Form\BlopEntityType; class BlopEntityController extends Controller { + public function addNewManyToOneAction($id, $key) + { + $em = $this->getDoctrine()->getManager(); + + $customFields = $em->getRepository('CLCustomFieldsBundle:CustomField') + ->findAll(); + + $customFieldsLablels = array_map( + function($e) { return $e->getLabel(); }, + $customFields); + + $customFieldsByLabel = array_combine($customFieldsLablels, $customFields); + + if (array_key_exists($key,$customFieldsByLabel)) { + $customFieldConfig = $customFieldsByLabel[$key]; + if($customFieldConfig->getType() === 'OneToMany(Adress)') { + $manyToOneEntity = new AdressType(); + $form = $this->createCreateForm($manyToOneEntity); + $form->handleRequest($request); + + if ($form->isValid()) { + $em = $this->getDoctrine()->getManager(); + $em->persist($manyToOneEntity); + $em->flush(); + + $blopEntity = $this->om + ->getRepository('CLCustomFieldsBundle:CustomField') + ->findOneById($id); + + $blopEntityCustomFieldArray = json_decode($blopEntity->getCustomField()); + $blopEntityCustomFieldArray[$key][] = $manyToOneEntity->getId(); + } + } else { + // PAS MANY TO ONE + throw new Exception("Error Processing Request", 1); + } + } else { + // PAS RENSEIGNE COMME CF + throw new Exception("Error Processing Request", 1); + } + } + /** * Lists all BlopEntity entities. * diff --git a/src/CL/CustomFieldsBundle/Resources/config/routing/blopentity.yml b/src/CL/CustomFieldsBundle/Resources/config/routing/blopentity.yml index 696095e6f..38212ad03 100644 --- a/src/CL/CustomFieldsBundle/Resources/config/routing/blopentity.yml +++ b/src/CL/CustomFieldsBundle/Resources/config/routing/blopentity.yml @@ -35,4 +35,8 @@ blopentity_cfget: blopentity_cfset: path: /{id}/cfset/{key}/{value} - defaults: { _controller: "CLCustomFieldsBundle:BlopEntity:cfSet" } \ No newline at end of file + defaults: { _controller: "CLCustomFieldsBundle:BlopEntity:cfSet" } + +blopentity_addmany_to_one: + path: /{id}/add/custom/field/{key} + defaults: {_controller: "CLCustomFieldsBundle:BlopEntity:addNewManyToOne"} \ No newline at end of file