Récuperer des informations de ma base de données

Résolu/Fermé
Shadruus - 28 août 2019 à 16:46
 Shadruus - 29 août 2019 à 14:50
Bonjour,

Alors voilà je suis en stage et je travaille sur la mise à jour du site internet de l'entreprise, je travaille sous le framework symfony.
Le problème est que je n'arrive pas a récupérer des emails dans ma base de données. Je vous explique, grace à des repositories je montre à mon code ou chercher dans ma base de données en l’occurrence par RÔLE, une fois que j'ai l'entité dont j'ai besoin, donc qu'il a la bonne localisation, plus bas dans le code via une fonction je lui dis d'envoyer l'email automatique a cette adresse que je viens de récupérer dans ma base de données mais rien ne se passe.
Le développeur précédent avait écrit les adresses email en dur dans le code, ce qui nous obligeais a changer les adresses sur le code en cas de changement, et on voudrait pouvoir changer les adresses directement sur le site relié a la base de données.

J’espère avoir été clair c'est mon premier post sur un forum et je ne suis pas très bon pédagogue, si quelqu'un arrive a me décrypté, j'aimerais beaucoup avoir son aide


(je dis a mon code l'endroit ou je veux recuperer les adresses email)
$em = $this->getDoctrine()->getManager();
$arrayDaf = $em->getRepository(User::class)->findBy(array('roles'=>'ROLE_DAF'));
$arrayCodir = $em->getRepository(User::class)->findByarray('roles'=>'ROLE_CODIR'));


(je lui dis d'envoyer un mail aux adresses que j'ai recuperer à savoir getEmail())
if ($prices[0] > 5000 || $prices[1]) {
foreach($arrayDaf as $userdaf){
$this->sendUserMailAction($command, $userdaf->getEmail());
}
$command->setStatus(CommandStatusType::VALIDATION_DAF);
} elseif ($prices[1]) {
foreach($arrayCodir as $usercodir){
$this->sendUserMailAction($command, $usercodir->getEmail());
}
$command->setStatus(CommandStatusType::VALIDATION_EXCOM)



Le développeur précédent avait écrit les adresses email en dur dans le code, ce qui nous obligeais a changer les adresses sur le code en cas de changement, et on voudrait pouvoir changer les adresses directement sur le site relié a la base de données.
J’espère avoir été clair c'est mon premier post sur un forum et je ne suis pas très bon pédagogue, si quelqu'un arrive a me décrypté, j'aimerais beaucoup avoir son aide. (tout le code n'est pas présent seulement ce qui m'importe)

Merci par avance
A voir également:

3 réponses

yg_be Messages postés 22710 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 1 474
28 août 2019 à 17:11
bonjour, merci d'utiliser les balises de code quand tu partages du code.
0
Bonjour,

Tout d'abord merci de ta réponse et je tiens à m'excuser pour le manque de balise je viens de voir comment on pouvais faire cela.
Donc voici mon code avec les balises ainsi que des commentaires pour être plus clair sur le sujet de mon problème.

public function commandValidationAction(Request $request, Command $command = null)
    {
        if (!$command instanceof Command){
            throw new NotFoundHttpException('Command not found');

        /*Grace aux repositories je dis a mon code de se positionner à l'endroit role daf et role codir*/ 
        $em = $this->getDoctrine()->getManager();
        $arrayDaf = $em->getRepository(User::class)->findBy(array('roles'=>'ROLE_DAF'));
        $arrayCodir = $em->getRepository(User::class)->findBy(array('roles'=>'ROLE_CODIR'));
       

        $prices = $this->getTotalPriceAndUnitPrice($command->getTools());


        $comment = new CommandComment();

        $form = $this->createForm(CommandCommentType::class, $comment);
        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {
            $comment->setCommand($command);
            $comment->setUser($this->getUser());

            $em->persist($comment);
            $em->flush();
            
            
            if ($prices[0] > 5000 || $prices[1]) {
                foreach($arrayDaf as $userdaf){
                    $this->sendUserMailAction($command, $userdaf->getEmail()/*Ici je lui dis de prendre l'email du role daf*/ );
                } 
                $command->setStatus(CommandStatusType::VALIDATION_DAF);
            } elseif ($prices[1]) {
                foreach($arrayCodir as $usercodir){
                    $this->sendUserMailAction($command, $usercodir->getEmail()/*Ici je lui dis de prendre l'email du role codir*/);
                }
                $command->setStatus(CommandStatusType::VALIDATION_EXCOM);
            }
            } else {
                $this->sendProviderMailAction($command);
                $command->setStatus(CommandStatusType::SEND);
                $this->sendTechValidationNotificationMailAction($command);
            }

            $em->persist($command);
            $em->flush();

            $notif = new CommandUpdate();
            $notif->setUser($this->getUser());
            $notif->setCommand($command);
            $notif->setType(4);

            $em->persist($notif);
            $em->flush();

            $title = "Commande validée";
            $text = $this->getUser()->getDisplayName() . " : Vient de **valider** la commande **".$command->getReference().'**';
            $uri = $this->generateUrl('command_show', array('id' => $command->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
            $this->sendToMicrosoftTeams($title, $text, $uri);

            return $this->redirectToRoute('command_show', array('id' => $command->getId()));
        }

        return $this->render('@Tools/Commands/validationCommand.html.twig', array(
            'command' => $command,
            'form' => $form->createView(),
        ));

    }
0
yg_be Messages postés 22710 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 1 474
29 août 2019 à 10:43
as-tu pu déterminer si les instructions en lignes 30 et 35 sont exécutées?
0
oui ces instructions s’exécutent étant donné que lorsque a la place de mon $userdaf->getEmail() j'écris un email en dur, un email de validation est bien envoyé à l'adresse écrite
0
yg_be Messages postés 22710 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 1 474
29 août 2019 à 11:43
alors as-tu pu déterminer ce que contient
$userdaf->getEmail()
?
0
Non ça je n'ai pas pu le déterminer, comment puis-je procéder ?
0
yg_be Messages postés 22710 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 1 474 > Shadruus
29 août 2019 à 12:20
par exemple en l'affichant, en l'écrivant dans un fichier, dans une base de données, ou en l'incluant dans le texte d'un email.
0
Je suis désolé mais je ne sais pas comment faire cela, ça devrait être trivial j'imagine...
Je code sur visual studio code, j'ai oublié de le préciser
0
yg_be Messages postés 22710 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 1 474 > Shadruus
29 août 2019 à 13:45
je ne connais ni le framework, ni ton environnement.
as-tu essayé echo?
0