Я строю слушатель сущности в приложении на основе Symfony 2.7. Он будет применять тег к видео всякий раз, когда меняется группа, в которой он принадлежит.
Мой слушатель выглядит так:
public function preUpdate($video, $args)
{
$changeSet = $args->getEntityChangeSet();
if(!array_key_exists('ownerGroup', $changeSet )){
return;
}
$oldGroupObj = $changeSet['ownerGroup'][0];
$oldGroupName = $oldGroupObj->getName();
//die($oldGroupName); //Gives us a valid group name string.
$tagRepository = $args->getEntityManager()->getRepository('AppBundle:Tag');
$tag = $tagRepository->findOneBy( ['title' => 'migrated' . $oldGroupName] );
if( $tag === null ){
$tag = new Tag;
$tag->setTitle('migrated' . $oldGroupName);
}
$video->addTag($tag);
}
Проблема в том, что последняя строка. Когда я запускаю его, он вызывает это исключение:
Данная модель уже запустила процесс default_workflow.
Что означает это исключение, и как я могу сохранить новый тег в моем видео при смене группы-владельца?
Trully, Я не разработал приложение с Symfony. Но после прочтения некоторой документации Symfony, для вашего случая исключение Данная модель уже запустила процесс «default_workflow», заинтересованный вКомпонент процесса«, ориентированный на Функция бега (mustRun ()), за исключением того, что ProcessFailedException если процесс не может быть успешно выполнен.
Так, глобально, не сосредотачивайтесь не только на своей «функции preUpdate», но и на «все из-за вашего большого кода-symfony», потому что это исключение «открывается из« Process-Of-Your-Application »
Других решений пока нет …