业务经理

微信扫描以上二维码

028-61286886

技术咨询

PHP程序里面本文章解决问题如下《内容关联类型字段如果在编辑

迅睿框架 更新 2021-03-11 23:17:47 ericwolf
PHP程序里面

本文章解决问题如下:《内容关联类型字段,如果在编辑时候保存不在关联字段中的值》


应用场景:


假设 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);
              }
          }
}


方案

  • 迅睿框架创始人 #1 · 2019-08-20 08:15:32
    分享技术的精神值得鼓励针对这个帖子我专门写了一个不破坏系统的方法:https://www.xunruicms.com/doc/733.html
  • 新手上路 #2 · 2019-08-20 09:16:33
    收藏了
  • ericwolf #3 · 2019-08-20 10:04:36
    回复迅睿框架创始人是的,diy的这个我看了确实很好,可以不破坏系统的,我可以把它完善成 文件的 在分享出来
  • ericwolf #4 · 2019-08-20 10:26:17
    ericwolf在这里还有个问题我现在已经关联了字段类型,有没有办法可以在不删除字段的前提下,改变字段类型
  • 迅睿框架创始人 #5 · 2019-08-20 10:40:12
  • ericwolf #6 · 2019-08-20 20:12:36
    回复迅睿框架创始人好没问题了
  • 流浪的乞丐 #7 · 2020-09-26 22:13:56
    收藏了!!!
  • 吃不痴 #8 · 2021-03-11 23:17:47
    收藏了!!!

迅睿系统漏洞

多语言翻译Seolang
多语言翻译Seolang(2026-09-21)
1. 新增译文数据备份恢复页面,支持断点续传 2. 多语言声明中心...
AI文章生成器
AI文章生成器(2026-09-20)
任务拆分独立配置 新增AI生成关键词 新增指令模板 新增品牌信...
GEO系统
GEO系统(2026-09-20)
后台 AEO 与运营端对齐:区域、跑批、CSV、补强、剧本均可在迅睿...
GeoSeo工具箱
GeoSeo工具箱(2026-09-18)
修正菜单规范
后台二次登陆验证
后台二次登陆验证(2026-09-18)
新增邮箱验证 新增短信验证
京东云短信
京东云短信(2026-09-17)
- 验证码有效期改只读展示 - 有效期旁新增系统设置按钮 - 保...
创蓝短信
创蓝短信(2026-09-17)
- 验证码有效期改只读展示 - 有效期旁新增系统设置按钮 - 保...
火山引擎短信
火山引擎短信(2026-09-17)
- 验证码有效期改只读展示 - 有效期旁新增系统设置按钮 - 保...
外贸多语言建站
外贸多语言建站(2026-09-17)
优化独立内容过滤机制