Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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
数据对象未显示按钮的Silverstripe Advancedwrokflow_Silverstripe - Fatal编程技术网

数据对象未显示按钮的Silverstripe Advancedwrokflow

数据对象未显示按钮的Silverstripe Advancedwrokflow,silverstripe,Silverstripe,我正在使用SilverStripe(3.1.6版)和advancedworkflow插件 我的网站主要是建立在数据对象上的。 我已在.yml文件中指定了对象和模型管理员,如文档中所述: MyObject: extensions: - WorkflowApplicable MyObjectAdmin: extensions: - AdvancedWorkflowExtension 我还在对象的“工作流”选项卡中指定了工作流。 我正在使用模板审阅和批

我正在使用SilverStripe(3.1.6版)和advancedworkflow插件

我的网站主要是建立在数据对象上的。 我已在.yml文件中指定了对象和模型管理员,如文档中所述:

MyObject:
    extensions:
        - WorkflowApplicable
MyObjectAdmin:
    extensions:
        - AdvancedWorkflowExtension
我还在对象的“工作流”选项卡中指定了工作流。 我正在使用模板审阅和批准工作流

当我看到在编辑页面时启动工作流的按钮时,dataobject没有显示该按钮。我是否需要在对象级别添加代码,或修改模板工作流以处理数据对象?
谢谢大家!

我在这个模块上做了很多工作,但很少做任何关于工作流和数据对象的工作-但是-我记得你需要让你的自定义数据对象具有“工作流意识”,请在
mysite/_config/config.yml

MyCustomeDataObject:
  extensions:
    - WorkflowApplicable

…然后运行
dev/build

如果您已经覆盖了DataObject中的getCMSFields()方法,但没有使用scaffolding(通过调用fields=parent::getCMSFields()),则需要确保调用“updateCMSFields”,以便WorkflowApplied扩展能够完成它的工作

public function getCMSFields(){
    $fields = new FieldList();
    ...
    $this->extend('updateCMSFields', $fields);
    return $fields;
}

我很高兴地宣布,写这个插件的出色的SilverStripe团队解决了这个问题(在同一天!!!)

有关代码提交信息,请查看:


这些更改现在是主分支的一部分,因此我认为没有其他人会面临此问题。

感谢您的及时回答。我已经这样做了,并且运行了dev/build。我还看到了数据库中的变化。但是初始操作按钮仍然丢失…谢谢你。我确实使用了$fields=parent::getCMSFields();对于dataObject#getCMSActions()“需要由solid dataObject重载,以便该dataObject的自定义操作(包括该dataObject的扩展自定义操作)可以添加到EditForm。”因此,您可能需要在自定义dataObject中执行此操作:公共函数getCMSActions(){$actions=parent::getCMSActions();$this->extend('updatecmactions',$actions);返回$actions;}谢谢!您能解释一下该函数中应该包含什么或发送指向该引用的链接吗?这只是dataobject的一般实现。问题出在advancedworkflow加载项中…保存dataobject后,您能看到按钮吗?在advancedworkflow/code/extensions/wrokflowApplieve.php上的代码中挖掘铲斗第135行函数公共函数更新CMActions(FieldList$actions){不是在dataobjects上调用的,而是在pages上调用的。我相信这是添加按钮的函数。这有助于任何人理解这个问题吗?只是提供一个更新:我已经在github中提交了一个问题,并且在加载项中有一个bug。silverstripe的员工非常出色,非常勤奋。他们有很好的支持,并且已经在开发一个fix、 这里有一个问题的链接:@TomerAlmog,看看你在Github上提出的问题,它似乎已经解决了。也许值得你回答你自己的问题,说明问题已经解决,可能是如何解决的(链接到Github中提到的PR中的正确位),也可以将您需要解决问题的任何其他重要部分连接在一起。