Я создаю прослушиватель сущностей в приложении, основанном на 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);
}
Проблема в последней строке. Когда я запускаю его, он вызывает это исключение:
The given model has already started the "default_workflow" process.
Что означает это исключение и как я могу сохранить новый тег в моем видео при изменении группы-владельца?






Правда, я не разрабатывал приложение на symfony. Но после прочтения документации по symfony, для вашего случая исключения. Данная модель уже запустила процесс "default_workflow", заинтересованный в "Компонент процесса", сфокусированный на Функция бега (mustRun ()), за исключением того, что он выдаст ProcessFailedException, если процесс не сможет ' t быть успешно выполненным. Итак, Глобально, сосредоточьтесь не только на вашей «функции preUpdate», но и на вашем большом коде symfony, потому что это исключение «открывается из» процесса вашего приложения