Via la commande drush generate form:simple, il est très facile de générer le squelette pour un formulaire, avec une route liée.
Mais ce générateur, contrairement à d'autre ne demande pas si l'on a besoin d'injecter des services dans notre formulaire.
Heureusement, c'est plutôt simple :
Il faut commencer par ajouter la classe ContainerInterface à vos use :
use Symfony\Component\DependencyInjection\ContainerInterface;
Puis de définir le constructeur :
/**
* Constructs the form instance.
*/
public function __construct(protected EntityTypeManagerInterface $entityTypeManager) {}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container): self {
return new self($container->get('entity_type.manager'));
}
Avec « l'ancienne syntaxe » PHP, cela donne :
protected EntityTypeManagerInterface $entityTypeManager;
/**
* Constructs the form instance.
*/
public function __construct(EntityTypeManagerInterface $entityTypeManager) {
$this->entityTypeManager = $entityTypeManager;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container): self {
return new self($container->get('entity_type.manager'));
}
Ajouter un commentaire