我有这样的倾听者
use Doctrine\Common\EventSubscriber;
use Doctrine\Common\Persistence\Event\LifecycleEventArgs;
use Doctrine\Common\Persistence\Event\PreUpdateEventArgs;
use Doctrine\Common\Persistence\ObjectManager;
use Doctrine\ORM\Events;
class MachineSubscriber implements EventSubscriber
和方法
/**
* @param PreUpdateEventArgs $args
*/
public function preUpdate(PreUpdateEventArgs $args)
和Doctrine抛出异常
ContextErrorException:Catchable Fatal Error:传递给的参数1 Certificate \ MachineBundle \ Event \ MachineSubscriber :: preUpdate()必须是 Doctrine \ Common \ Persistence \ Event \ PreUpdateEventArgs的一个实例, 给出了Doctrine \ ORM \ Event \ PreUpdateEventArgs的实例,
奇怪的是因为我使用了适当的课程。
答案 0 :(得分:3)
您正在使用错误的命名空间/类来键入preUpdate()
函数参数。正确的 hierarchy 是:
Doctrine\Common\EventArgs
|_ Doctrine\ORM\Event\LifecycleEventArgs
|_ Doctrine\ORM\Event\PreUpdateEventArgs
使用...键入提示
use Doctrine\Common\EventArgs;
public function preUpdate(EventArgs $args)
{
// ...
......或......
use Doctrine\ORM\Event\LifecycleEventArgs;
public function preUpdate(LifecycleEventArgs $args)
{
// ...
......或......
use Doctrine\ORM\Event\PreUpdateEventArgs;
public function preUpdate(PreUpdateEventArgs $args)
{
// ...
...但不:
use Doctrine\Common\Persistence\Event\PreUpdateEventArgs;