创建一个事件以在symfony中显示声音通知

时间:2019-03-20 10:50:01

标签: symfony events notifications symfony-3.4

我想在用户下订单时在symfony 3.4上的我的应用程序的管理员中添加通知声音,我创建了一个事件,我在订单的控制器中调用它,但是我不知道如何在事件的功能:

我的问题是如何创建声音通知,请帮忙

    public function checkoutAction(Request $request, $erreur,  
     EventDispatcherInterface $eventDispatcher)
     {
    $commande = new Commande();
    //panier
    $panier = $this->get('session')->get('panier', null);
    if (!$panier) {
        return $this->redirectToRoute('ce_panier_list');
    }
    $commande->setPanier($panier);
    //type commande
    $typeCommande = $this->get('session')->get('typecmd');
    $commande->setTypeCommande($typeCommande);
    //etat
    $commande->setEtat("en attente de validation");

    //user
    $usr = $this->getUser();
    if ($usr)
        $commande->setUser($usr);
    //livraison
    if ($typeCommande == "livraison" && $usr) {
        $commande->setAdresseLiv($usr->getAdresseLiv());
        $commande->setVilleLiv($usr->getVilleLiv());
        $commande->setZoneLivraison($usr->getZoneLivraison());
    }
    // prixcommande
    $commande->setPrixCommande($commande->getTotal());
    //form
    $form = $this->createForm(CommandeType::class, $commande, array(
        'connected' => ($usr != null),
        'typeCommande' => $typeCommande
    ));

    if ($request->isMethod('POST') && $form->handleRequest($request)->isValid()) {

        $event = new GenericEvent($commande);
        $eventDispatcher->dispatch(Events::COMMANDE_ATTENTE, $event);

        if ($commande->getModePaiement() != "paypal") {
            if (!$usr) {
                $userManager = $this->get('fos_user.user_manager');
                $user = $userManager->createUser();
                $this->createUserFromCommande($user, $commande);
                $userManager->updateUser($user);
                $token = new UsernamePasswordToken($user, null, 'main', 
                $user->getRoles());
                $this->get('security.token_storage')->setToken($token);
                $this->get('session')->set('_security_main', 
                serialize($token));
                $commande->setUser($user);
                $commande->setNullLivrInfo();
            }
            $em = $this->getDoctrine()->getManager();
            $em->persist($commande);
            $em->flush();
            $this->sendMailCommande($commande);
            $this->get('session')->set('panier', array());

            return $this->redirectToRoute('ce_commande_termine', 
            array('id' => $commande->getId()));

事件:

 class Notify implements EventSubscriberInterface
{

public static function getSubscribedEvents()
{
    return [

        Events::COMMANDE_ATTENTE => 'onCommandNotify'

    ];
}

public function onCommandNotify(GenericEvent $event)
{
        ????????? How to create an audible notification
}
}

感谢曲目

0 个答案:

没有答案