联系官方销售客服
1835022288
028-61286886
本文章解决问题如下:《内容关联类型字段,如果在编辑时候保存不在关联字段中的值》
应用场景:
假设 A模块中的一个 name_id 字段使用的是 B模块的内容关联
B模块现在 数据库有的数据ID(1,2,3,4)
A 模块name_id 的值为 :1,2
假设现在因为业务需要,需要自定义这个模块的值为,1,2,33,44
那么现在的系统会自动替换到 不在B模块中的值
那么修改文件:dayrui/Fcms/Field/Related.php
代码如下:
$value = @trim($value, ','); if ($value && is_string($value)) { $value_object_array = explode(",",$value); $db = \Phpcmf\Service::M()->db->query('select id,title,url from '.\Phpcmf\Service::M()->dbprefix(SITE_ID.'_'.$module).' where id IN ('.$value.') order by instr("'.$value.'", id)'); $query = $db ? $db->getResultArray() : []; if ($query) { foreach ($query as $t) { $id = $t['id']; if(in_array($id,$value_object_array)){ $key = array_search($id,$value_object_array); unset($value_object_array[$key]); } $value = '<a href="'.$t['url'].'" target="_blank">'.$t['title'].'</a>'; $str.= str_replace(array('{id}', '{value}', '\\'), array($id, $value, ''), $tpl); } foreach($value_object_array as $t){ $value = '<a href="#" target="_blank">未知自定义</a>'; $str.= str_replace(array('{id}', '{value}', '\\'), array($t, $value, ''), $tpl); } }else{ foreach($value_object_array as $t){ $value = '<a href="#" target="_blank">未知自定义</a>'; $str.= str_replace(array('{id}', '{value}', '\\'), array($t, $value, ''), $tpl); } } }