这是逻辑钩子After Save
,这个逻辑钩子完全适用于我的本地机器。
但它不适用于沙盒复制。我向Sugar支持小组提出了这个问题,他们发现 Set_relationship 无法正常工作
但我的问题是为什么这是在本地工作或有没有其他方法来编写这个代码,我错了?
class RHLogicHook {
function ReportingTeam($bean, $event, $arguments) {
if (isset($arguments['isUpdate']) && $arguments['isUpdate'] == false) {
$reporting_head = BeanFactory::retrieveBean('Contacts', $bean->contact_id_c);
$contact = BeanFactory::retrieveBean('Contacts', $bean->contacts_rh_reporting_head_1contacts_ida);
$reporting_team = new RH_reporing_team();
$reporting_team->contact_id_c = $contact->id;
$reporting_team->save();
$dataset = array(
'contacts_rh_reporing_team_1contacts_ida' => $reporting_head->id,
'contacts_rh_reporing_team_1rh_reporing_team_idb' => $reporting_team->id,
);
$reporting_team->set_relationship('contacts_rh_reporing_team_1_c', array(), false, false, $dataset);
}
}
}
请帮帮我。
答案 0 :(得分:1)
某些功能被列入黑名单,如果是这种情况,您可以轻松使用技巧来确保您的代码在生产实例上运行良好。尝试下面提到的技巧:
$ hack_function =" set_relationship&#34 ;; $ reporting_team-> $ hack_function(' contacts_rh_reporing_team_1_c',array(),false,false,$ dataset);
希望这能解决您的问题。
答案 1 :(得分:0)
请不要在上面使用。使用负载关系和添加方法。
class RHLogicHook {
function ReportingTeam($bean, $event, $arguments) {
if (isset($arguments['isUpdate']) && $arguments['isUpdate'] == false) {
$reporting_head = BeanFactory::retrieveBean('Contacts', $bean->contact_id_c);
$contact = BeanFactory::retrieveBean('Contacts', $bean->contacts_rh_reporting_head_1contacts_ida);
$reporting_team = new RH_reporing_team();
$reporting_team->contact_id_c = $contact->id;
$reporting_team->save();
$GLOBALS['log']->log('zob_ms_bean ' . print_r($reporting_head, 1));
if ( $reporting_head->load_relationship('contacts_rh_reporing_team_1')) {
$reporting_head->contacts_rh_reporing_team_1->add($reporting_team->id);
}
}
}
}