我有非常非常简单的逻辑钩子 - 我还在学习,一开始我很困惑.我打开开发者模式.
我在"联系人"模块中已经有"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');
Run Code Online (Sandbox Code Playgroud)
在my.php文件中我添加了
class User_hook {
function copy(&$bean, $event, $arguments)
{
$bean->my_field_c = $bean->fetched_row['first_name']. " - additional text";
}
}
Run Code Online (Sandbox Code Playgroud)
因此,当我输入First_Name值"First"时,我将获得"我的字段值" - "附加文本",但我应该得到"First-additional text".如果我进入编辑视图并输入名字字段"第二",我将进入我的字段值"第一个 - 附加文本",但我应该得到"第二个 - 附加文本".如果我是enetein编辑视图"第三"我进入我的领域"第三 - 附加文本"但我应该得到"第三 - 附加文本".
所以很明显我的逻辑钩子在一次迭代中执行延迟 - 为什么以及如何改变它?这是我的第一个钩子所以我不是那么经验.感谢帮助
$ 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";
}
}
Run Code Online (Sandbox Code Playgroud)