将多个值添加到一列
问题描述:
我们正在研究基于SilverStripe的网站,并且该网站与SugarCRM数据库相连。将多个值添加到一列
我们已经创建了一个表格有CheckboxSet
具有多个值,并将其存储一个名为$data['Interessen']
$set_entry_parameters = array(
"session" => $session_id,
"module_name" => "Contacts",
"name_value_list" => array(
array(
"name" => "interessen_c",
"value" => $data['Interessen']['fotografie']
),
array(
"name" => "interessen_c",
"value" => $data['Interessen']['dance']
)
)
);
现在用"interessen_c"
最后一个数组将覆盖之前的值的变量。我们希望一次添加多个值。
这怎么可能?
答
如果$数据[“Interessen”]内容只能从一个充满可能性的固定值列表,我建议你做现场interessen_c到multienum
型(“多选择下拉”字段) 。
对于该字段,创建Sugar中所有可用项目的列表(例如在Studio中或通过代码手动创建app_list_strings条目)。
Sugar将在此字段中支持多个值,并很好地显示它们。
如果您的程序通过与Sugar REST API进行通信来写入数据,那么您只需传递$data['Interessen']
数组作为interessen_c
的值,Sugar将知道如何处理它。
如果你的程序在数据库中的数据直接写入interessen_c场,则该字段的内容必须符合以下格式:
^value1^,^value2^,^value3^
因此,与周围的每个值和所有项目^
,
这里的如何将数组值转换成这样的字符串在PHP的示例分离
$interessen = array();
foreach ($data['Interessen'] as $value) {
// add value surrounded by^to array
$interessen[] = "^$value^";
}
// transform values in array to string with items being separated by ,
$interessen = implode(',', $interessen);
侧面说明:
从内糖可以使用encodeMultienumValue($arr)
和unencodeMultienum($string)
从数组转换为DB-字符串格式和背部。
这两个函数定义在include/utils.php
你能澄清这个问题吗?现在很难知道如何重现您的问题 –
U可以直接使用,如“name_value_list”=> json_encode(array($ data ['Interessen'] ['fotografie'],$ data ['Interessen'] ['dance '],$ data ['Interessen'] ['etc'])); 虽然检索你可以解码它,所以你会像以前一样得到纯数组,如:json_decode(set_entry_parameters [“name_value_list”]); –