em = $em; $this->merchantResolver = $merchantResolver; $this->sectionResolver = $sectionResolver; $this->merchantSettingDefinition = $merchantSettingDefinition; $this->sectionSettingDefinition = $sectionSettingDefinition; $this->translatorAdmin = $translatorAdmin ; } public function manageMerchant(Request $request) { return $this->manage($request, 'merchant'); } public function manageSection(Request $request) { return $this->manage($request, 'section'); } public function manage(Request $request, $type) { $entity = null ; if ($type == 'merchant') { $resolver = $this->merchantResolver ; $formClass = MerchantSettingsFormType::class; $settingDefinition = $this->merchantSettingDefinition ; } elseif ($type == 'section') { $resolver = $this->sectionResolver ; $formClass = SectionSettingsFormType::class; $settingDefinition = $this->sectionSettingDefinition ; } $entity = $resolver->getCurrent(); if ($entity) { $form = $this->createForm($formClass, $entity); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $this->em->update($entity); $this->em->flush(); $this->addFlash('success', $this->translatorAdmin->transFlashMessage('settings_saved')); } return $this->render( '@LcCaracole/admin/setting/' . $type . '.html.twig', [ 'resolver' => $resolver, 'setting_definition' => $settingDefinition, 'form' => $form->createView() ] ); } } }