autowire+autoconfigure service to avoid container error with parameter_bag + add dep injection + comment debug

This commit is contained in:
Mathieu Jaumotte 2021-02-08 15:46:45 +01:00
parent 4f90561362
commit 5ea0126a03
2 changed files with 29 additions and 9 deletions

View File

@ -17,6 +17,7 @@ use Chill\CustomFieldsBundle\Entity\CustomFieldsDefaultGroup;
use Chill\CustomFieldsBundle\Form\CustomFieldsGroupType; use Chill\CustomFieldsBundle\Form\CustomFieldsGroupType;
use Chill\CustomFieldsBundle\Form\CustomFieldType; use Chill\CustomFieldsBundle\Form\CustomFieldType;
use Chill\CustomFieldsBundle\Form\Type\CustomFieldType as FormTypeCustomField; use Chill\CustomFieldsBundle\Form\Type\CustomFieldType as FormTypeCustomField;
use Symfony\Contracts\Translation\TranslatorInterface;
/** /**
* Class CustomFieldsGroupController * Class CustomFieldsGroupController
@ -31,14 +32,23 @@ class CustomFieldsGroupController extends AbstractController
*/ */
private $customfieldProvider; private $customfieldProvider;
/**
* @var TranslatorInterface
*/
private $translator;
/** /**
* CustomFieldsGroupController constructor. * CustomFieldsGroupController constructor.
* *
* @param CustomFieldProvider $customFieldProvider * @param CustomFieldProvider $customFieldProvider
* @param TranslatorInterface $translator
*/ */
public function __construct(CustomFieldProvider $customFieldProvider) public function __construct(
{ CustomFieldProvider $customFieldProvider,
TranslatorInterface $translator
) {
$this->customfieldProvider = $customFieldProvider; $this->customfieldProvider = $customFieldProvider;
$this->translator = $translator;
} }
/** /**
@ -122,13 +132,13 @@ class CustomFieldsGroupController extends AbstractController
$em->persist($entity); $em->persist($entity);
$em->flush(); $em->flush();
$this->addFlash('success', $this->get('translator') $this->addFlash('success', $this->translator
->trans("The custom fields group has been created")); ->trans("The custom fields group has been created"));
return $this->redirect($this->generateUrl('customfieldsgroup_show', array('id' => $entity->getId()))); return $this->redirect($this->generateUrl('customfieldsgroup_show', array('id' => $entity->getId())));
} }
$this->addFlash('error', $this->get('translator') $this->addFlash('error', $this->translator
->trans("The custom fields group form contains errors")); ->trans("The custom fields group form contains errors"));
return $this->render('ChillCustomFieldsBundle:CustomFieldsGroup:new.html.twig', array( return $this->render('ChillCustomFieldsBundle:CustomFieldsGroup:new.html.twig', array(
@ -305,13 +315,13 @@ class CustomFieldsGroupController extends AbstractController
if ($editForm->isValid()) { if ($editForm->isValid()) {
$em->flush(); $em->flush();
$this->addFlash('success', $this->get('translator') $this->addFlash('success', $this->translator
->trans("The custom fields group has been updated")); ->trans("The custom fields group has been updated"));
return $this->redirect($this->generateUrl('customfieldsgroup_edit', array('id' => $id))); return $this->redirect($this->generateUrl('customfieldsgroup_edit', array('id' => $id)));
} }
$this->addFlash('error', $this->get('translator') $this->addFlash('error', $this->translator
->trans("The custom fields group form contains errors")); ->trans("The custom fields group form contains errors"));
return $this->render('ChillCustomFieldsBundle:CustomFieldsGroup:edit.html.twig', array( return $this->render('ChillCustomFieldsBundle:CustomFieldsGroup:edit.html.twig', array(
@ -361,7 +371,7 @@ class CustomFieldsGroupController extends AbstractController
$em->persist($newCFDefaultGroup); $em->persist($newCFDefaultGroup);
$em->flush(); $em->flush();
$this->addFlash('success', $this->get('translator') $this->addFlash('success', $this->translator
->trans("The default custom fields group has been changed")); ->trans("The default custom fields group has been changed"));
return $this->redirect($this->generateUrl('customfieldsgroup')); return $this->redirect($this->generateUrl('customfieldsgroup'));
@ -404,8 +414,8 @@ class CustomFieldsGroupController extends AbstractController
)); ));
} }
var_dump($form->getData()); //dump($form->getData());
var_dump(json_enccode($form->getData())); //dump(json_enccode($form->getData()));
} }

View File

@ -6,4 +6,14 @@ services:
Chill\CustomFieldsBundle\Controller\CustomFieldsGroupController: Chill\CustomFieldsBundle\Controller\CustomFieldsGroupController:
arguments: arguments:
$customFieldProvider: '@chill.custom_field.provider' $customFieldProvider: '@chill.custom_field.provider'
$translator: '@Symfony\Contracts\Translation\TranslatorInterface'
tags: ['controller.service_arguments'] tags: ['controller.service_arguments']
## TODO
## cfr. https://github.com/symfony/symfony/issues/27436#issuecomment-393576416
#
# " An exception has been thrown during the rendering of a template
# ("The "Chill\CustomFieldsBundle\Controller\CustomFieldsGroupController::getParameter()" method is missing a parameter bag
# to work properly. Did you forget to register your controller as a service subscriber? This can be fixed
# either by using autoconfiguration or by manually wiring a "parameter_bag" in the service locator passed to the controller.").
autowire: true
autoconfigure: true