SugarCRM - 非常简单的逻辑挂钩延迟执行

时间:2013-01-29 08:53:08

标签: hook sugarcrm

我有非常非常简单的逻辑钩子 - 我还在学习,我一开始很困惑。 我打开开发者模式。

我在“通讯录”模块中已经有“FIRST_NAME”字段。 我也在COntacts模块中创建了我的字段“MY_FIELD”。

在logic_hooks.php文件中,我添加了

$hook_array['before_save'] = Array();
$hook_array['before_save'][] = Array(1, 'Value from one field to another', 'custom/modules/Contacts/my.php', 'User_hook','copy'); 

在my.php文件中我添加了

class User_hook {

    function copy(&$bean, $event, $arguments)
    {

    $bean->my_field_c  = $bean->fetched_row['first_name']. " - additional text";
    }

}

所以当我输入First_Name值“First”时,我进入My field value“-additional text”但我应该得到“First-additional text”。 如果我进入编辑视图并输入名字字段“秒”,我将进入我的字段值“第一个 - 附加文本”,但我应该得到“第二个 - 附加文本”。 如果我是enetein编辑视图“第三”我进入我的领域“第三 - 附加文本”但我应该得到“第三 - 附加文本”。

很明显,我的逻辑钩子在一次迭代中执行延迟 - 为什么以及如何更改它?这是我的第一个钩子所以我不是那么经验。谢谢你的帮助

1 个答案:

答案 0 :(得分:5)

$ bean-> fetched_row ['first_name']将在您更改之前返回字段的值。在用户在表单上更改first_name之前,您可以使用它来查看first_name的值。

尝试使用

class User_hook {

    function copy(&$bean, $event, $arguments)
    {

    $bean->my_field_c  = $bean->first_name. " - additional text";
    }

}