SugarCRM 7.9 - 卸载软件包时删除自定义字段

时间:2018-01-26 13:47:05

标签: php database manifest sugarcrm

我已经创建了可安装包,我通过manifest.php创建了一些自定义用户字段:

$installdefs = [
'custom_fields' => 
[...],
[...]
]

我也添加了卸载后的内容:

    'post_uninstall' => [
    [
        0 => '<basepath>/post_uninstall.php'
    ]
]

在我的post_uninstall.php中,我添加了:

$fieldsByModule = array(
    'Users' => array(
        'field1_c',
        'field2_c',
        'field3_c',
        'field4_c',
        'field5_c',
        'field6_c'
        ),
    );

foreach ($fieldsByModule as $moduleName => $fields) {
    foreach ($fields as $field) {
        $dyField = new DynamicField();
        $dyField->bean = BeanFactory::getBean($moduleName);;
        $dyField->module = $moduleName;
        $dyField->deleteField($field);
    }
}

当我手动运行post_uninstall脚本时,它可以运行并从Sugar DB中删除字段,但是当我尝试从Sugar ModuleLoader卸载软件包时,卸载过程陷入76%(重建平台...),软件包文件被删除但是自定义字段保留在DB中。

我的问题是 - 如何使用post_uninstall.php正确删除自定义字段。我的方式似乎不起作用。或者也许有其他方式?关键是用户应该能够从管理面板卸载软件包(自定义字段)。

0 个答案:

没有答案