Il servizio “fos_user.mailer” ha una dipendenza per un servizio inesistente “template”

Così, l’errore di cui sopra ha improvvisamente cominciato ad accadere, dopo sto usando FOSUserBundle per diversi i progetti di Symfony.

Ho cercato tra cui il template di servizio (due volte) e sembra che è installato bene. Ecco la mia lista di richiede a mio compositore.json:

"require": {
    "php": ">=5.5.9",
    "doctrine/doctrine-bundle": "^1.6",
    "doctrine/orm": "^2.5",
    "friendsofsymfony/user-bundle": "^2.0",
    "incenteev/composer-parameter-handler": "^2.0",
    "sensio/distribution-bundle": "^5.0.19",
    "sensio/framework-extra-bundle": "^5.0.0",
    "symfony/monolog-bundle": "^3.1.0",
    "symfony/polyfill-apcu": "^1.0",
    "symfony/swiftmailer-bundle": "^2.6.4",
    "symfony/symfony": "3.4.*",
    "symfony/templating": "^3.4",
    "twig/twig": "^1.0||^2.0"
},

Ho settato il config.yml, di sicurezza.yml e il routing.yml file come al solito, e incluso il bundle in AppKernel.php file. Ho anche creato il User.php Entità, ma ogni volta che provo a cancellare la cache o aggiornare il database, ottengo questo errore.

Il servizio “fos_user.mailer” ha una dipendenza su un inesistente
servizio di “template”

E dopo molte ricerche, non vedo dove per risolvere questo problema. Qualsiasi aiuto è molto apprezzato in quanto è qualcosa che non è mai accaduto prima, e ho sempre usato FOSUserBundle per le mie esigenze di sicurezza.

  • Suppongo che hai ricontrollato che framework:template:motori:[‘twig’] è impostato nel file di configurazione.yml?
  • Ho questo in config: # Twig Configuration twig: debug: '%kernel.debug%' strict_variables: '%kernel.debug%'
  • È inoltre necessario una voce nell’ambito della sezione.



2 Replies
  1. 67

    Ho appena sperimentato lo stesso problema. La cosa divertente è che ho creato un Symfony 3.3 progetto appena prima di creare un Symfony 3.4 progetto e Symfony 3.3 progetto non ha questo problema. Quindi devono avere rimosso il template per la versione 3.4.

    Per risolvere il tuo problema, è necessario installare il template utilizzando compositore:

    composer require symfony/templating

    Quindi, aggiungere la seguente configurazione sotto la framework chiave nel tuo config.yml:

    templating:
        engines: ['twig']

    Aggiornamento: recentemente ho dovuto iniziare una nuova Symfony 3.4 progetto con FOSUserBundle e ho scoperto solo dovuto aggiungere la configurazione di cui sopra per la mia config.file yml (come è stato detto nella un commento qui sotto).

    • Grazie per la risposta 🙂
    • Suggerimento per coloro che sono di fissaggio in questo SF 3.x, installare con la versione specifica 3.4.2: “compositore richiedono symfony/templating v3.4.2” o si otterrà uno dipendenze versione eccezione, fino alla data di symfony/templating è in v4.x per Symfony 4 (compositore installa automaticamente la versione più recente se non specificato).
    • Inoltre accettato di rispondere, sembra che il motore di template è già installato, ma non solo, per qualche motivo, rimosso dal file di configurazione, in modo che chiunque avendo lo stesso problema, prima prova ad aggiungere quello che ha detto in accettato di rispondere. Ha funzionato per me e sono sicuro che non ho installato nulla accanto FOSUserBundle.
    • Ho avuto lo stesso problema, ma prima di installare symfony/templating bundle, ho appena provato con il motore di template definizione per i vostri consigli, e con mio grande stupore, ha funzionato. Così, ho solo la configurazione di definizione e non è necessario eseguire il compositore.
    • Grazie mille, questo mi ha aiutato a correggere un errore che mi aveva perplesso per un po’. Il messaggio di errore è: Il servizio di “Sonata\UserBundle\Azione\RequestAction” ha una dipendenza per un servizio inesistente “template”. Risolto solo con l’aggiunta di configurazione in ambito chiave nel file di configurazione.yml. Evviva!
  2. 87

    In Symfony 3.4 e FosUserBundle 2.0, aggiungere un servizio mailer in fos_user config:

    fos_user:
        db_driver: orm # other valid values are 'mongodb' and 'couchdb'
        firewall_name: main
        user_class: AppBundle\Entity\User
        service:                               # this lines
            mailer: fos_user.mailer.twig_swift # this lines
        from_email:
            address: "%mailer_user%"
            sender_name: "%mailer_user%
    • Ha funzionato perfettamente, con un fresco Symfony 3.4 progetto. Grazie!
    • Soluzione fornita non ha funzionato con 3.4, la tua risposta mi ha salvato! Thx per la condivisione!
    • Questo ha funzionato per symfony 3.4. Thx
    • Grazie, è un lavoro per me 3.4 troppo. Ma che cosa significa ? Penso che indicano fos_user che il servizio mailer è TwigSwiftMailer. Ma dove fos_user.mailer.twig_swift è definito ?
    • Questa è la risposta giusta con 3.4 🙂
    • Risposta corretta per Symfony 3.4.
    • Questa è la risposta corretta, penso che sarà meglio che questo hanno il verde contrassegno corretto
    • Grazie @Moccine la vostra risposta è risolto il mio problema, la mattina presto.
    • risposta corretta per symfony 4.2, in config/package/fos_user.yaml

Lascia un commento