Я работаю с компонентом Workflow в symfony 4.3.Для моей сущности у меня есть свойство маркировки и свойство transition_contexts.Переходный_контекст имеет тип JSON, например
[{"time": ..., "context":[all info I want], "new_marking" : "some_place", {etc...}]
для каждого выполненного перехода.Я хочу установить transition_context также для начального места под названием создание.На данный момент, когда я создаю новый объект, мой transition_contexts выглядит следующим образом:
[{"time": ..., "context":[], "new_marking" : "creation"}]
Для всех других переходов я использую функцию apply (), где я могу установить массив контекста, но для инициализации с начальным местомЯ не знаю, как это сделать.
Я читал о слушателях, поэтому я попытался
class FicheSyntheseTransitionListener implements EventSubscriberInterface
{
private $security;
private $connection;
public function __construct(Security $security, ManagerRegistry $em)
{
$this->security = $security;
//ManagerRegistry au lieu de EntityManagerInterface car on a plusieurs entityManager
$this->connection = $em->getManager('fichesynthese');
}
public function addRedacteur(Event $event)
{
$context = $event->getContext();
$user = $this->tokenStorage->getToken()->getUser();
if ($user instanceof UserInterface) {
$context['user'] = $user->getUsername();
}
$event->setContext($context);
$this->get('doctrine')->getManager('fichesynthese')->flush();
}
public static function getSubscribedEvents()
{
return [
'workflow.fiche.entered.creation' => ['addRedacteur'],
];
}
}
Но, похоже, это не учитывается.Есть ли способ добиться этого?Ручной вызов функции, которая устанавливает начальную маркировку?Спасибо