联系官方销售客服

1835022288

028-61286886

求助 版主:官方研发技术组
请问插件开发后台执行'测试'''''前端开发''插件开发需要
类型:迅睿CMS 更新时间:2021-07-14 16:43:21
请问插件开发: 后台执行 INSERT INTO dr_1_book (title,catid,uid,author,status,tableid,inputtime,updatetime)VALUES(ENCODE('测试','xyz'),1,1,'admin',9,0,1626241767,1626241767); 前端开发: select decode(title,'xyz') as title from dr_1_book; 插件开发需要数据库函数提前处理 这个语句没有问题,怎么在插件里面达到这个语句执行的效果
回帖
  • 官方研发技术-小卡
    #1楼    官方研发技术-小卡
    2021-07-14 16:09:31
    Chrome 0
    \Phpcmf\Service::M()->db->query("你的查询语句");
    这样就行,执行sql参考文档:《数据库操作》
  • 米帝国
    #2楼    米帝国
    2021-07-14 16:12:51
    Chrome 0
    \dayrui\App\Book\Controllers\Admin\Home.php 怎么重写此方法:
    public function add() {
    $this->_Admin_Add();
    }

  • 官方研发技术-小卡
    #3楼    官方研发技术-小卡
    2021-07-14 16:14:07
    Chrome 0
    重写就简单了,你用phpstorm追踪到Admin_Add函数,然后把里面的内容复制到 add()里面来,直接修改了
  • 米帝国
    #4楼    米帝国
    2021-07-14 16:14:32
    Chrome 0
    \dayrui\App\Book\Controllers\Show.php怎么重写此方法:
    public function index() {


  • 官方研发技术-小卡
    #5楼    官方研发技术-小卡
    2021-07-14 16:16:04
    Chrome 0
    方法一样啊,追踪到父级别的类,然后复制到你这个文件里面来修改,是典型的php继承类的用法
  • 张明宇
    #6楼    张明宇
    2021-07-14 16:17:25
    Chrome 0
    这是php的特性,子继承父,父不管子,子子独立
  • 米帝国
    #7楼    米帝国
    2021-07-14 16:19:03
    Chrome 0
    \dayrui\Fcms\Core\Table.php
    $this->_Admin_Add();
    此方法已包含以下两个方法的处理。怎么兼容。
    protected function _Post($id = 0, $draft = [], $is_data = 0, $is_post = 0) {
    protected function _Save($id = 0, $data = [], $old = [], $before = null, $after = null) {
  • 官方研发技术-小卡
    #8楼    官方研发技术-小卡
    2021-07-14 16:21:22
    Chrome 0
    _Admin_Add类并不是在dayrui\Fcms\Core\Table.php,你走远了
  • 米帝国
    #9楼    米帝国
    2021-07-14 16:24:40
    Chrome 0
    \dayrui\Fcms\Extend\Admin\Module.php
    protected function _Admin_Add() {
    是这里吧,如果不走这么远,数据怎么按原先的流程提交呢?不可能直接插入一条数据就OK了吧
  • 官方研发技术-小卡
    #10楼    官方研发技术-小卡
    2021-07-14 16:26:18
    Chrome 0
    你那说说你的想法,你到底要实现什么样子的功能,为什么找到admin_add这里,或许有其他更好的方法
  • 米帝国
    #11楼    米帝国
    2021-07-14 16:29:37
    Chrome 0
    还是用你们后台添加数据的流程,但是只需要对title等字段进行mysql函数(ENCODE('测试','xyz'))处理。
  • 官方研发技术-小卡
    #12楼    官方研发技术-小卡
    2021-07-14 16:32:42
    Chrome 0
    那你走远了, 可以这个方法参考文档:《重写Content类:发布文章时随机点击次数》
    // 内容发布之前
        public function _content_post_before($id, $data, $old) {
            if (!$id) {
                // 这个判断表示新增内容
                $data[1]['title']; // 这个是title变量,用php函数进行处理
            }
            return $data;
        }
  • 米帝国
    #13楼    米帝国
    2021-07-14 16:36:08
    Chrome 0
    亲,这个encode与decode是mysql函数哈。如果按你这样加在后面,此两函数根本不能mysql语句中执行。
  • 官方研发技术-小卡
    #14楼    官方研发技术-小卡
    2021-07-14 16:37:43
    Chrome 0
    php雷芳芳里面只能眼红php的函数,用不了mysql的函数,你可以在php里面找一找相关功能的函数
  • 米帝国
    #15楼    米帝国
    2021-07-14 16:40:53
    Chrome 0
    你这边有该问题的解决方法么?
  • 官方研发技术-小卡
    #16楼    官方研发技术-小卡
    2021-07-14 16:43:21
    Chrome 0
    解决方法我已经告诉你了,你只需要找一个类似功能的函数就行了啊、
    // 内容发布之前
        public function _content_post_before($id, $data, $old) {
            if (!$id) {
                // 这个判断表示新增内容
                $data[1]['title'] = urlencode($data[1]['title']); // 这个是title变量,用php函数进行处理
            }
            return $data;
        }
    PHP里面有一个urlencode,就套用上面公式就行了,不要只复制代码,你需要研究每局代码的含义,剩下的直接交给你自己完成了