createNotFoundException('unable to load object Person 1'); } // build the form $oFormFactory = $oFormManager->CreateFactory(); // object plugin $oObjectPlugin = $oFormFactory->CreateObjectPlugin($oPerson, false); $oObjectPlugin->AddAttribute('name'); $oObjectPlugin->AddAttribute('mobile_phone'); // others data $oFormFactory->AddTextField('data1', [ 'label' => 'Ma ville', 'constraints' => new Length(['min' => 3]) ], 'Autun'); $oFormFactory->AddTextField('data2', [ 'label' => 'Pays' ], 'FRANCE'); $oFormFactory->AddSelectField('data3', [ 'label' => 'Ma langue', 'choices' => SelectHelper::GetApplicationLanguages() ], 'FR FR'); $oFormFactory->AddSelectAjaxField('data4', [ 'label' => 'Mon Chien', 'placeholder' => 'Sélectionnez un chien' ], 'http://localhost' . $this->generateUrl('formSDK_ajax_select'), [], 'breed', 'breed', 'breed', 20); $oFormFactory->AddSelectOqlField('data5', [ 'label' => 'Ma personne', ], 'Person', 'SELECT Person', [], '', 20); // get the form $oForm = $oFormFactory->GetForm(); // handle request $oForm->handleRequest($oRequest); // submitted and valid if ($oForm->isSubmitted() && $oForm->isValid()) { // retrieve form data $data = $oForm->getData(); // ... perform some action, such as saving the data to the database return $this->redirectToRoute('app_success'); } return $this->render('formSDK/form.html.twig', [ 'form' => $oForm->createView(), 'theme' => 'formSDK/themes/portal.html.twig' ]); } #[Route('/formSDK/ajax_select', name: 'formSDK_ajax_select')] public function ajax(Request $oRequest): Response { $oJson = file_get_contents('sources/FormSDK/Resources/dogs.json'); $aDogs = json_decode($oJson, true); $sQuery = $oRequest->request->get('query'); return new JsonResponse([ "items" => $aDogs['dogBreeds'] ]); } #[Route('/formSDK/object_search', name: 'formSDK_object_search')] public function OperationSearch( #[MapQueryString] ObjectSearchDto $objectSearch, ): JsonResponse { // Search objects $aResult = ObjectRepository::SearchFromOql($objectSearch->class, json_decode($objectSearch->fields, true), $objectSearch->oql, $objectSearch->search); return new JsonResponse([ 'items' => $aResult, ]); } #[Route('/success', name: 'app_success')] public function success(): Response { return $this->render('formSDK/success.html.twig'); } }