Symfony “无法应用转换”;拒绝“;“工作流程”指南;“未命名”;

Symfony “无法应用转换”;拒绝“;“工作流程”指南;“未命名”;,symfony,symfony-workflows,Symfony,Symfony Workflows,我在使用新的symfony(3.2)工作流功能时遇到一些问题。似乎我只能将“回顾”转换应用于任务 $workflow->apply($task, 'review'); 要查看此代码的工作情况 通过拒绝和审查,我总是会犯这个错误 此处,控制器和实体: 控制器 实体 有人能告诉我如何修复它吗?是的,您只能对新创建的任务应用review,因为它们处于第一个状态Drawed。要发布或拒绝任务,首先需要应用review,然后应用reject或publish: $task = new Task(

我在使用新的symfony(3.2)工作流功能时遇到一些问题。似乎我只能将“回顾”转换应用于任务

$workflow->apply($task, 'review');
要查看此代码的工作情况

通过拒绝和审查,我总是会犯这个错误

此处,控制器和实体:

控制器 实体
有人能告诉我如何修复它吗?

是的,您只能对新创建的任务应用
review
,因为它们处于第一个状态
Drawed
。要发布或拒绝任务,首先需要应用
review
,然后应用
reject
publish

$task = new Task();

// Place newly created task to reviewed status
$workflow->apply($task, 'reject');

// Then reject or publish
$workflow->apply($task, 'publish')
我会尽力解释的。首先,定义任务的状态:

->addPlaces(['drafted', 'reviewed', 'rejected', 'published'])
由于忽略了
Task
s
state
属性的设置值,新任务将处于
drafted
(列表中的第一个任务)状态

接下来,定义任务从一种状态传递到另一种状态的规则(称为
转换

它只是定义的过渡(或动作),称为
review
,仅适用于
起草的
任务,在执行任务后,其状态更改为
revied

因此,总而言之,所有新创建的任务都应该首先进行审查,然后发布或拒绝

$task = new Task();

// Place newly created task to reviewed status
$workflow->apply($task, 'reject');

// Then reject or publish
$workflow->apply($task, 'publish')
->addPlaces(['drafted', 'reviewed', 'rejected', 'published'])
->addTransition(new Transition('review', 'drafted', 'reviewed'))