Bonjour à tous,

J'ai créer un service "ServiceDocuware" que j'ai déclarer dans mon services.yaml:

**  services.yaml: **
    App\Service\ServiceDocuware:

mais quand je souhaite l'injecter dans le contructeur de mon AbstractFieldType

namespace App\Form\Type\Listes;

use App\Service\ServiceDocuware;
use Symfony\Component\Form\AbstractType;

class AbstractFildType extends AbstractType
{

    public function __construct(
        private ServiceDocuware $docuware
    ) 
    {
    }

}

Ce que j'obtiens

J'obtiens l'erreur suivante :

Too few arguments to function App\Form\Type\Listes\AbstractFildType::__construct(), 0 passed in \vendor\symfony\form\FormRegistry.php on line 78 and exactly 1 expected

Je vous remercie

4 réponses


Noham C.
Auteur
Réponse acceptée

Je pense avoir compris et trouver la solution, il n'est donc pas possible d'injecter quoi que ce soit dans un FORMTYPE, il faut le déclarer dans service.yaml et la ca fonctionne.

Un exemple :

    App\Form\Type\FieldsValidatorType:
        arguments: ['@doctrine.orm.entity_manager']
        tags: [form.type]

et dans mon FORMTYPE je peux donc maintenant injecter

  private $entityManager;

    public function __construct(EntityManagerInterface $entityManager)
    {
        $this->entityManager = $entityManager;
    }

Hello,

Question conne avant de continuer : As-tu clear le cache ? (ça peut arriver qu'il ne le fasse pas)

Noham C.
Auteur

Oui j'ai fait un

composer cc

Je n'ai ce souci que dans les AbstractType :(

Noham C.
Auteur

Même quand je passe des repositroy ca me donne le meme message:

public function __construct(
        private readonly ModuleDocuwarePGRepository $docuwareParamRepository,
        private readonly SettingsParametresRepository $settingsParametresRepository,
    ) 
    {
    }