symfony2.8 @ORM \ HasLifecycleCallbacks () не работает - PullRequest
0 голосов
/ 13 сентября 2018

Я обнаружил, что @ORM \ PrePersist не работает в моем проекте, я хочу сбросить число перед сохранением, а затем завершить процедуру ,, но проблема в том, что "$ em-> persist ();" все еще выполнить , и номер не сбросить, вот мое демо:

<?php

namespace Nlc\InformationBundle\Entity;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity()
 * @ORM\HasLifecycleCallbacks()
 */

class Adminuser
{
    /**
     * @ORM\PrePersist
     */
    public function test(){
        dump(1);die;
    }
}



<?php

namespace Nlc\InformationBundle\Controller;


use Nlc\InformationBundle\Entity\Adminuser;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;

class AdminuserController extends Controller
{
    /**
     * @Route("/testadmin")
     */
    public function testadmin(){
        $em = $this->getDoctrine()->getManager();
        $adminuser = new Adminuser();
        $adminuser->setUsername('dave');
        $adminuser->setPassword('123');
        //before persist,I want dump 1 then die,but did't work
        $em->persist($adminuser);
        $em->flush();
        return new Response();
    }
}

1 Ответ

0 голосов
/ 13 сентября 2018

Если вы попытаетесь добавить просто идентификатор или что-то подобное, возможно, Doctrine попытается сохранить вашу сущность.

<?php

namespace Nlc\InformationBundle\Entity;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity()
 * @ORM\HasLifecycleCallbacks()
 */

class Adminuser
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM\PrePersist
     */
    public function test(){
        dump(1);die;
    }
}
...