0

私のVisitorControllerクラス

public function chooseVisitor($zone)
{
    $em = $this->getDoctrine()->getManager();

    $lvisitor = $em->getRepository('EMRSabaBundle:Personel')->findOneBy(array('status' => '1', 'lastv' => '1', 'zone' => $zone));
    $id = $lvisitor->getId();
    $lvisitor->setLastv(0);


    $newvisitorid = $em->getRepository('EMRSabaBundle:Personel')->findNewVisitor($id);
    $newvisitorid = $newvisitorid[0];
    $newvisitor = $em->getRepository('EMRSabaBundle:Personel')->find($newvisitorid);
    $newvisitor->setLastv(1);

    $em->flush();

    return $newvisitor;
}

public function defineZone($Customer)
{
    $phone = substr($Customer,1);
    switch ($phone)
    {
        case 2:
            $zone = 1;
            break;
        case 4:
            $zone = 1;
            break;
        case 8:
            $zone = 2;
            break;
        case 7:
            $zone = 3;
            break;
    }

    return $zone;
}

私のEventListener

namespace EMR\SabaBundle\EventListener;

use Doctrine\ORM\Event\LifecycleEventArgs;
use EMR\SabaBundle\Entity\Orders;
use EMR\SabaBundle\Entity\Visit;
use EMR\SabaBundle\Controller\VisitController;

class EntityListener {

    public function postPersist(LifecycleEventArgs $args)
    {
        $orders = $args->getEntity();
        $em = $args->getEntityManager();
        if ($orders instanceof Orders){
            if ($orders->getStatus() == 1){
                $VC = new VisitController();
                $zone = $VC->defineZone($orders->getCustomer()->getId());
                $personel = $VC->chooseVisitor($zone);
                $visit = new Visit();
                $visit->setDate(new \DateTime());
                $visit->setStatus(0);
                $visit->setOrders($orders);
                $visit->setPersonel($personel);

                $em->persist($visit);
                $em->flush();
            }
        }
    }
}

& 私のservices.yml

    entity.listener:
    class: EMR\SabaBundle\EventListener\EntityListener
    tags:
        - { name: doctrine.event_listener, event: postPersist }

注文エンティティのステータスが 1 のときに新しい訪問を作成して保持したい 問題の場所とイベント リスナーのデバッグ方法がわからない

この仕事を成し遂げるために誰か手を貸してくれませんか

4

1 に答える 1