我有非常非常简单的逻辑钩子 - 我还在学习,我一开始很困惑。 我打开开发者模式。
我在“通讯录”模块中已经有“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编辑视图“第三”我进入我的领域“第三 - 附加文本”但我应该得到“第三 - 附加文本”。
很明显,我的逻辑钩子在一次迭代中执行延迟 - 为什么以及如何更改它?这是我的第一个钩子所以我不是那么经验。谢谢你的帮助
答案 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";
}
}