我正在尝试在CiviCRM中将电子邮件地址设置为空白。我将一个数组序列化如下,并通过REST发布(代码是常规的):
def rest = [
json: 1,
api_key: apiKey,
key: siteKey,
debug: 1,
version: 3,
entity: 'Contact',
action: 'create',
contact_type: contact_type,
overwriteblank:true,
id: record.crID,
rest["email[1][email]"] = modified.value as String
rest["email[1][location_type_id]"] = 1
]
我尝试了'overwriteblank'选项 - 但电子邮件似乎仍然没有设置为空白。
由于
答案 0 :(得分:2)
电子邮件地址是与联系人分开的API实体(因为联系人可以拥有无限数量的电子邮件地址)。您需要做的就是获取contact_id = whatever的电子邮件条目,然后删除它们。
$result = civicrm_api3('Email', 'get', array('contact_id' => $YOUR_CONTACT_ID));
然后检查错误并迭代$ result ['值']:
$deleted = civicrm_api3('Email', 'delete', array('id' => $YOURRESULTROW['id']));
使用SQL方法,您不会删除电子邮件,只需将该人的电子邮件设置为空字符串即可。
答案 1 :(得分:-1)
我能做的最好的是sql。
String sql_update = """update civicrm_email set email = "" where contact_id = ?"""