Я использую симфони 3.1. Я хочу создать систему уведомлений в своем приложении в symfony. Я создал объект с именем notification для сохранения уведомлений. Поэтому, когда пользователь создает, редактирует или удаляет запись в базе данных, я хочу сохранить это действие в таблице уведомлений. Я использовал метод аннотации HasLifecycleCallbacks(), и это заставило меня создать объект контроллера в моей сущности, но ничего не сработало. Как мне это сделать? Есть ли другое решение?
/**
* @ORM\Table(name="user")
* @ORM\Entity(repositoryClass="CM\UserBundle\Repository\UserRepository")
* @ORM\HasLifecycleCallbacks()
*/
class User extends BaseUser {
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string
*
* @ORM\Column(name="nom", type="string", unique=true, length=255, nullable=true)
* @Assert\NotBlank()
*/
protected $nom;
/**
* @var int
*
* @ORM\Column(name="numero", type="integer", unique=true, nullable=true)
* @Assert\NotBlank()
*/
protected $numero;
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set nom
*
* @param string $nom
*
* @return User
*/
public function setNom($nom)
{
$this->nom = $nom;
return $this;
}
/**
* Get nom
*
* @return string
*/
public function getNom()
{
return $this->nom;
}
/**
* Set numero
*
* @param integer $numero
*
* @return User
*/
public function setNumero($numero)
{
$this->numero = $numero;
return $this;
}
/**
* Get numero
*
* @return int
*/
public function getNumero()
{
return $this->numero;
}
/**
* @ORM\PreRemove
*/
public function notify(){
$controlleur = new RemoveController();
$em = $controlleur->getDoctrine()->getManager();
$notif = new Notification();
$notif->setOperation('recording');
$notif->setUser('William');
$em->persist($notif);
$em->flush();
}
}