0

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

我已经在联系人模块中有字段“FIRST_NAME”。我也在联系人模块中创建了我的字段“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”时,我输入了我的字段值“-additional text”,但我应该得到“First-additional text”。如果我转到编辑视图并在名字字段“第二”中输入,我将进入我的字段值“第一 - 附加文本”,但我应该得到“第二 - 附加文本”。如果我进入编辑视图“第三”,我将进入我的字段“第三 - 附加文本”,但我应该得到“第三 - 附加文本”。

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

4

1 回答 1

5

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

尝试使用

class User_hook {

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

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

}    
于 2013-01-29T14:56:10.970 回答