业务经理

微信扫描以上二维码

028-61286886

技术咨询

有一个栏目 模块【news】栏目公共模型字段 需要验证重复,有什么好的办法吗?

迅睿框架 更新 2021-07-25 14:55:26 乐发发

有一个栏目 模块【news】栏目公共模型字段  需要验证重复,有什么好的办法吗?

已经添加了不少内容,但是用的是模块栏目字段,无法想模块内容字段那样进行验证


image

方案

  • 醉猫猫 #1 · 2021-07-25 12:43:02
    https://www.xunruicms.com/doc/1082.html
    重写Content类:检测重复标题不让发布
  • 乐发发 #2 · 2021-07-25 12:48:59
    醉猫猫 大哥我不会写呀 😢 😢 😢
  • 迅睿框架联合创始人 #3 · 2021-07-25 12:52:01
    赞同一楼的思路
  • 乐发发 #4 · 2021-07-25 12:56:48
    迅睿框架联合创始人 可以帮忙写一下代码吗?
  • 醉猫猫 #5 · 2021-07-25 12:58:20
    乐发发 拿news模块标题为例 App/News/Models/ 这个目录下新建一个Content.php 文件文件内容
    <?php namespace Phpcmf\Model\News;
    
    // 模块内容模型类
    
    class Content extends \Phpcmf\Model\Content {
    
        // 内容发布之前
        public function _content_post_before($id, $data, $old) {
            if ($this->db->table($this->mytable)->where('id<>', (int)$id)->where('title', $data[1]['title'])->countAllResults()) {
                return dr_return_data(0, '标题重复了');
            }
            return $data;
        }
        
       
    }

  • 乐发发 #6 · 2021-07-25 13:22:06
    醉猫猫
    image

    image
    这个文件怎么改,随便改一下就报错,不知道怎么改,可以帮忙改一下吗
    image
  • 醉猫猫 #7 · 2021-07-25 13:25:37
    加QQ
  • 醉猫猫 #8 · 2021-07-25 14:52:26
    满意答案
    /config/custom.php 自定义函数 function dr_post_spbm($value, $data = [], $old = []) { $db = \Phpcmf\Service::M()->db->table('1_news_category_data')->where('id<>', (int)$id)->where('spbm', $value)->countAllResults(); if (!$value) { return dr_return_data(0, '没有填写'); } elseif ($db) { return dr_return_data(0, '重复了'); } return dr_return_data(1, 'ok');}公共字段里如下图设置,只测试了文本(text)字段
    image
    已帮楼主解决 发出来留给需要的朋友吧
  • 乐发发 #9 · 2021-07-25 14:55:26
    @醉猫猫:谢谢大哥,非常非常好,已经解决

迅睿系统漏洞

GeoSeo收录宝
GeoSeo收录宝(2026-10-12)
1 支持chtml 静态化,全局配置 2 支持SQLite3
GeoSeo排名助手
GeoSeo排名助手(2026-10-11)
加入大模型自定义
SEO聚合关键字
SEO聚合关键字(2026-10-11)
优化关键字列表页最多支持1万篇文章,过多会导致服务器扛不住;
CMS内容同步复制
CMS内容同步复制(2026-10-10)
增加时间是否更新的开关
联动数据入库
联动数据入库(2026-10-10)
增加数据更新办法
GEO系统
GEO系统(2026-10-10)
网站发布支持自定义作者名 网站发布 → 站点程序 编辑站点,新增「作...
GeoSeo工具箱
GeoSeo工具箱(2026-10-10)
增加操作说明
注册赠送
注册赠送(2026-10-10)
增加安装前判断是否安装了用户系统