我使用Loggable备份实体中的更改。
默认AbstractLogEntry
的列不足以满足我的需求。
这就是为什么我扩展了类并添加了额外的getter和setter的原因。
请参见下面的代码
/**
* EmployeeBackup
*
* @ORM\Table(name="employee_backup")
* @ORM\Entity(repositoryClass="Gedmo\Loggable\Entity\Repository\LogEntryRepository")
*
*/
class EmployeeBackup extends AbstractLogEntry
{
/**
* @var int
*
* @ORM\Column(name="division_id", type="integer", unique=true)
*/
private $divisionId;
/**
* @return int
*/
public function getDivisionId(): int
{
return $this->divisionId;
}
/**
* @param string $divisionId
*/
public function setDivisionId(string $divisionId): void
{
$this->divisionId = $divisionId;
}
}
扩展名使用上面的类。这样就可以了。
但是现在我需要在存储新版本时设置divisionId
。
我尝试了下面的代码
$loggable = new LoggableListener();
$loggable->setDivision($division);
$evm->addEventSubscriber($loggable);
这就是我得到的:
试图调用类“ Gedmo \ Loggable \ LoggableListener”的名为“ setDivision”的未定义方法。
那是正确的,因为LoggableListener
没有setDivision
函数。我的问题是:我是否需要覆盖侦听器,如果是,我该怎么做?
谢谢;)