Création d'un service qui consigne des informations dans une base de données. Le service doit appeler la Doctrine \ ORM \ EntityManager dans le constuctor, mais je continue à obtenir cette erreur:Injection de dépendance Symfony avec services
Catchable Fatal Error: Argument 1 passed to AppBundle\Service\EmailLoggerManager::__construct() must be an instance of Doctrine\ORM\EntityManager, none given, called in /Users/augustwhitlock/Desktop/symfony/SymfonyRepositories/forms/src/AppBundle/Controller/DefaultController.php on line 45 and defined
Voici ce que j'ai dans mon dossier de service
namespace AppBundle\Service;
use Doctrine\ORM\EntityManager;
use AppBundle\Entity\Logger;
class EmailLoggerManager
{
private $em;
public function __construct(EntityManager $em)
{
$this->em = $em;
}
public function logMessageToDatabase($type, $message, $date)
{
$logger = new Logger();
$logger->setMessageType = $type;
$logger->setMessageText = $message;
$logger->setMessageDate = $date;
$this->em->persist($logger);
$this->em->flush();
}
Ce que je comment je m manipulant l'injection de l'EntityManager. À ce stade, je ne fais qu'apprendre le service et essayer différentes choses. Mais cela ne veut pas travailler.
Voici l'édition du DefaultController. J'ajoute les lignes 45 et 46. Il n'y a rien à part la définition de la classe.
$emailLoggerManager = new EmailLoggerManager();
$emailLoggerManager->logMessageToDatabase('Info', 'Hiya', new \DateTime());
return new Response('Message Logged');
Le concept derrière la classe est d'utiliser simplement la doctrine au service pour se connecter les choses à la base de données, de compensation mes contrôleurs de devoir être bouché de tout ce code.
Bonjour @ Kaley36, je voudrais voir la ligne 45 du fichier suivant '/ Users/augustwhitlock/Desktop/symfony/SymfonyRepositories/forms/src/AppBundle/Contrôleur/DefaultController.php '. Pouvez-vous éditer votre question et mettre la ligne comment vous appelez vos services. Merci. –