Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony2 Gedmo Loggable在刷新调用时崩溃_Php_Symfony_Doctrine_Flush - Fatal编程技术网

Php Symfony2 Gedmo Loggable在刷新调用时崩溃

Php Symfony2 Gedmo Loggable在刷新调用时崩溃,php,symfony,doctrine,flush,Php,Symfony,Doctrine,Flush,我有一个Symfony2项目,我对Gedmo的Loggable扩展有一个问题 我有一个表单正在正确构建和提交,通过了验证,但是当调用$EntityManager->flush()将表单数据添加到数据库(MySQL with doctor)时,我得到了以下结果: FatalErrorException: Error: Call to undefined method Path\To\My\Entity\Class::setAction() in /path/to/vendor/gedmo/doc

我有一个Symfony2项目,我对Gedmo的Loggable扩展有一个问题

我有一个表单正在正确构建和提交,通过了验证,但是当调用
$EntityManager->flush()
将表单数据添加到数据库(MySQL with doctor)时,我得到了以下结果:

FatalErrorException: Error: Call to undefined method Path\To\My\Entity\Class::setAction() 
in /path/to/vendor/gedmo/doctrine-extensions/lib/Gedmo/Loggable/LoggableListener.php line 225

at ErrorHandler->handleFatal() in /path/to/vendor/symfony/symfony/src/Symfony/Component/Debug/ErrorHandler.php line 0
at LoggableListener->createLogEntry() in /path/to/vendor/gedmo/doctrine-extensions/lib/Gedmo/Loggable/LoggableListener.php line 188
at LoggableListener->onFlush() in /path/to/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/ContainerAwareEventManager.php line 61
at ContainerAwareEventManager->dispatchEvent() in /path/to/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php line 306
at UnitOfWork->commit() in /path/to/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php line 355
at EntityManager->flush() in /Path/To/My/Bundle/Controller.php line 364
at Controller->addEntityAction() in /Path/To/app/bootstrap.php.cache line 2891
at ??call_user_func_array() in /Path/To/app/bootstrap.php.cache line 2891
at HttpKernel->handleRaw() in /Path/To/app/bootstrap.php.cache line 2865
at HttpKernel->handle() in /Path/To/app/bootstrap.php.cache line 2994
at ContainerAwareHttpKernel->handle() in /Path/To/app/bootstrap.php.cache line 2274
at Kernel->handle() in /Path/To/web/app_dev.php line 28
at ??{main}() in /Path/To/web/app_dev.php line 0
LoggableListner.php第188行是:

    foreach ($ea->getScheduledObjectInsertions($uow) as $object) {
        $this->createLogEntry(self::ACTION_CREATE, $object, $ea);
    }
public function onFlush(EventArgs $eventArgs)
{
    $ea = $this->getEventAdapter($eventArgs);
    $om = $ea->getObjectManager();
    $uow = $om->getUnitOfWork();

    foreach ($ea->getScheduledObjectInsertions($uow) as $object) {
        $this->createLogEntry(self::ACTION_CREATE, $object, $ea);
    }
    foreach ($ea->getScheduledObjectUpdates($uow) as $object) {
        $this->createLogEntry(self::ACTION_UPDATE, $object, $ea);
    }
    foreach ($ea->getScheduledObjectDeletions($uow) as $object) {
        $this->createLogEntry(self::ACTION_REMOVE, $object, $ea);
    }
}
第188行中围绕着foreach的完整功能是:

    foreach ($ea->getScheduledObjectInsertions($uow) as $object) {
        $this->createLogEntry(self::ACTION_CREATE, $object, $ea);
    }
public function onFlush(EventArgs $eventArgs)
{
    $ea = $this->getEventAdapter($eventArgs);
    $om = $ea->getObjectManager();
    $uow = $om->getUnitOfWork();

    foreach ($ea->getScheduledObjectInsertions($uow) as $object) {
        $this->createLogEntry(self::ACTION_CREATE, $object, $ea);
    }
    foreach ($ea->getScheduledObjectUpdates($uow) as $object) {
        $this->createLogEntry(self::ACTION_UPDATE, $object, $ea);
    }
    foreach ($ea->getScheduledObjectDeletions($uow) as $object) {
        $this->createLogEntry(self::ACTION_REMOVE, $object, $ea);
    }
}
LoggableListner.php第225行是:

        /** @var \Gedmo\Loggable\Entity\LogEntry $logEntry */
        $logEntry = $logEntryMeta->newInstance();
My entities具有可记录的标准Symfony2注释,即:

use Gedmo\Mapping\Annotation as Gedmo;

/**
* @Gedmo\Loggable(logEntryClass="My\Bundles\ThisBundle\ThisEntity")
*/

/**
* @ORM\Column(type="string", length=30, nullable=false)
* @Assert\Length(max=30)
* @Gedmo\Versioned
*/
protected $name;
我不知道
setAction()
调用来自何处。我的类中没有名为“action”的函数或方法,也没有诸如
getAction()
addAction()
removeAction()
等函数或方法(据我所知,也不应该有)


感谢您提供的任何见解和帮助

因此,在仔细查看堆栈跟踪和Loggable函数后,我意识到错误显然来自Loggable试图从我的一个实体实现一个函数,这告诉我,在某个地方我有一个不应该存在的类(因为我希望Loggable使用它自己的类和函数,而不是我自己的类和函数)

因此我改变了

/**
* @Gedmo\Loggable(logEntryClass="My\Bundles\ThisBundle\ThisEntity")
*/
公正

/**
* @Gedmo\Loggable
*/ 

这意味着它使用自己的类来执行日志记录和-瞧。没有更多的错误。

因此,在仔细查看堆栈跟踪和可记录函数之后,我意识到错误显然来自于试图从我的一个实体实现一个函数的可记录函数,这告诉我,在某个地方我有一个不应该存在的类(因为我希望Loggable使用自己的类和函数,而不是我的)

因此我改变了

/**
* @Gedmo\Loggable(logEntryClass="My\Bundles\ThisBundle\ThisEntity")
*/
公正

/**
* @Gedmo\Loggable
*/ 

这意味着它使用自己的类来执行日志记录,瞧,没有更多的错误。

因此,在仔细查看堆栈跟踪和可记录函数之后,我意识到错误显然来自于Loggable试图从我的一个实体实现一个函数,这告诉我在某个地方我有一个类不应该这样(因为我希望Loggable使用自己的类和函数,而不是我的)

因此我改变了

/**
* @Gedmo\Loggable(logEntryClass="My\Bundles\ThisBundle\ThisEntity")
*/
公正

/**
* @Gedmo\Loggable
*/ 

这意味着它使用自己的类来执行日志记录,瞧,没有更多的错误。

因此,在仔细查看堆栈跟踪和可记录函数之后,我意识到错误显然来自于Loggable试图从我的一个实体实现一个函数,这告诉我在某个地方我有一个类不应该这样(因为我希望Loggable使用自己的类和函数,而不是我的)

因此我改变了

/**
* @Gedmo\Loggable(logEntryClass="My\Bundles\ThisBundle\ThisEntity")
*/
公正

/**
* @Gedmo\Loggable
*/ 

这意味着它使用自己的类来执行日志记录和-瞧,没有更多错误。

如果有人有,甚至会接受故障排除建议!如果有人有,甚至会接受故障排除建议!如果有人有,甚至会接受故障排除建议!如果有人有,甚至会接受故障排除建议!