业务经理

微信扫描以上二维码

028-61286886

技术咨询

用户在会员中心模块下发布文章,需要有几个字段是固定的,不能让用户在前端改

迅睿框架 更新 2020-11-06 08:57:58 丛林灰太狼

求助大神们,用户在会员中心模块下发布文章,需要有几个字段是固定的,不能让用户在前端改,所以隐藏域这种不太合适,如何在不需要官方文件的情况下在控制器里处理。我知道有用钩子和重写Content类的方式。不过我这样写 没用

// 内容发布之前
public function _content_post_before($id, $data, $old) {
    $data['jbjd'] = '3';
    return $data;
}

顺便还有个问题求助,模块表单有人留言后,如果通知作者,谢谢。

方案

  • 迅睿框架创始人 #1 · 2020-11-04 21:38:13
    满意答案
    // 内容发布之前
    public function _content_post_before($id, $data, $old) {
        $data[填写:1或者0,1是主表,0是附表]['jbjd'] = '3';
        return $data;
    }
    打印下data就可以看格式了,一目了然,很容易看懂
  • 帝国织梦开发 #2 · 2020-11-04 21:40:58
    主表字段:
    $data[1]['jbjd'] = '3';
    副表字段
    $data[0]['jbjd'] = '3';
    看你是什么表的字段
  • 丛林灰太狼 #3 · 2020-11-04 21:42:17
    回复迅睿框架创始人 老大出马,太nb了,如果用钩子呢,我今晚看了一晚上钩子没稿明白。
    \Phpcmf\Hooks::on('module_content_before', function($data) {
        $data[1]['jbjd'] = '3';
    });
    这种就无法处理出来,趁老大在线,多学下!
  • 迅睿框架创始人 #4 · 2020-11-04 21:44:14
    钩子不适合这种赋值,钩子只能强制中断数据,和执行其他sql语句或者程序段,他不能返回数据丛林灰太狼
  • 丛林灰太狼 #5 · 2020-11-04 21:47:06
    回复迅睿框架创始人 那老大比如我第二个问题模块表单有人留言后,如何通知此文章作者,用钩子还是重写Content类,可以简单举个列子吗?程序我太菜了,在学习中。
  • 迅睿框架创始人 #6 · 2020-11-04 21:49:48
    推荐这个,在提交成功后写通知代码丛林灰太狼 参考文档:《模块表单提交后的回调开发》
  • 丛林灰太狼 #7 · 2020-11-04 22:00:15
    回复迅睿框架创始人 嗯,等下我继续试试这个,不过现在有点方啊,我希望审核后,继续修改这个字段的值,重写Content类
    // 内容审核操作之后
    public function _call_verify($data, $verify) {
        $data[1]['jbjd'] = '2';
        return $data;
    }
    就不行了。jbjd还是开始赋值的3,再后着脸求助下老大!
  • 迅睿框架创始人 #8 · 2020-11-04 22:03:05
    上面写的是内容审核操作之后,已经审核了,意味着数据已经存储,就没办法赋值了,所以这里面是不能赋值写法的,只有
    _content_post_before
    可以赋值
  • 黄老邪 #9 · 2020-11-04 22:07:39
    // 内容审核操作之后
    public function _call_verify($data, $verify) {
        $verify = $this->table($this->mytable.'_verify')->get($verify['id']);
        $data = dr_string2array($verify['content']);
        $data[1]['jbjd'] = '2';
        $this->table($this->mytable.'_verify')->update($verify['id'], ['content' => dr_array2string($data)]);
        
    }
    给分吧,不些
  • 丛林灰太狼 #10 · 2020-11-04 22:13:44
    黄老邪 我试了下 好像也不行 😂 jbjd的值还是3
  • 黄老邪 #11 · 2020-11-04 22:15:30
    // 内容审核操作之后
    public function _call_verify($data, $verify) {
        $verify = $this->table($this->mytable.'_verify')->get($verify['id']);
        $data = dr_string2array($verify['content']);
        $data['jbjd'] = '2';
        $this->table($this->mytable.'_verify')->update($verify['id'], ['content' => dr_array2string($data)]);
        
    }
  • 丛林灰太狼 #12 · 2020-11-04 22:24:01
    回复迅睿框架创始人 老大,我试出来,这种好像可以,不过不知道我代码有问题吗?请老大看看!
    public function _call_verify($data, $verify) {
        \Phpcmf\Service::M()->table_site('jubao')->update($data['id'], [
            'jbjd' => 6,
        ]);
    }
  • 迅睿框架创始人 #13 · 2020-11-04 22:31:07
    public function _call_verify($data, $verify) {
        \Phpcmf\Service::M()->table_site('jubao')->update($verify['id'], [
            'jbjd' => 6,
        ]);
    }
    参数改一下,这里只能去更新数据库值,不能赋值返回丛林灰太狼
  • 丛林灰太狼 #14 · 2020-11-04 22:55:05
    回复迅睿框架创始人 老大,我看了下 您把
    update($data['id']
    改为
    update($verify['id']
    我试了下 2个都可以把jbjd字段更新,但是他们有什么区别呢。又来学习 😀
  • 丛林灰太狼 #15 · 2020-11-06 08:57:58
    迅睿框架创始人:老大速度相当迅速,多谢

迅睿系统漏洞

独立站群系统
独立站群系统(2026-09-14)
子站独立部署时修复同步附件失败问题
在线客服
在线客服(2026-09-13)
修复删除会话报错问题 删除会话时联动删除聊天图片
在线考试竞赛系统
在线考试竞赛系统(2026-09-12)
增加投票功能 考试功能拓展 注意:更新后需要执行系统更新,更新数...
网上信箱
网上信箱(2026-09-12)
修复新版本兼容问题
GeoSeo收录宝
GeoSeo收录宝(2026-09-12)
1 优化Update.php文件,解决版本在线升级不完整问题 2 ...
GeoSeo工具箱
GeoSeo工具箱(2026-09-11)
修正历史记录推送
微信系统
微信系统(2026-09-11)
增加数据统计总览界面 账号管理增加服务和公众号的区别 菜单管理支持更...
答题系统
答题系统(2026-09-11)
一站式在线答题系统,支持真题考试、题库练习和错题本,适合培训、考证、...
阿里云滑动验证码
阿里云滑动验证码(2026-09-10)
采用阿里云验证码替换迅睿系统自带的图片验证码和滑动验证码。后台设置方...
下载Plus
下载Plus(2026-09-09)
为网站附件下载加上“计数、限次、统计、防护”四重能力:按用户组控制下...