PHP建站技术分享-从入门到精通_各类知识收集PHP建站技术分享-从入门到精通_各类知识收集PHP建站技术分享-从入门到精通_各类知识收集

QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > CMS教程 > Fastadmin

复制某一行数据并新建

管理员 2024-12-14
Fastadmin
105

当我们添加一些数据的时候,有些数据很多列都是重复的,只有一、两列才会有变动,如果用导入导出的功能又太麻烦,因为数据可能就几条,所以很多软件都会有复制新建功能
在fastadmin里面添加复制新建功能需要如下修改
1.新建copy.html
把edit.html复制一份改成copy.html,放在view下面
image.png
2.修改控制器
在对应的控制器中新增copy的function
构建copy的function也比较简单,直接从application/admin/library/traits/Backend.php里面把add和edit取一下就可以了
edit取上半部分
image.png
add取下半部分
image.png
就变成了下面这样

/**     * 复制     *     * @param $ids     * @return string     * @throws DbException     * @throws thinkException     */    public function copy($ids = null)    {        $row = $this->model->get($ids);        if (!$row) {            $this->error(__('No Results were found'));        }        $adminIds = $this->getDataLimitAdminIds();        if (is_array($adminIds) && !in_array($row[$this->dataLimitField], $adminIds)) {            $this->error(__('You have no permission'));        }        if (false === $this->request->isPost()) {            $this->view->assign('row', $row);            return $this->view->fetch();        }        $params = $this->request->post('row/a');        if (empty($params)) {            $this->error(__('Parameter %s can not be empty', ''));        }        $params = $this->preExcludeFields($params);        if ($this->dataLimit && $this->dataLimitFieldAutoFill) {            $params[$this->dataLimitField] = $this->auth->id;        }        $result = false;        Db::startTrans();        try {            //是否采用模型验证            if ($this->modelValidate) {                $name = str_replace("\model\", "\validate\", get_class($this->model));                $validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.add' : $name) : $this->modelValidate;                $this->model->validateFailException()->validate($validate);            }            $result = $this->model->allowField(true)->save($params);            Db::commit();        } catch (ValidateException|PDOException|Exception $e) {            Db::rollback();            $this->error($e->getMessage());        }        if ($result === false) {            $this->error(__('No rows were inserted'));        }        $this->success();    }

3.修改js文件
找到对应的js文件,在操作栏增加一个复制新建按钮
image.png
也加一下copy页面的表单初始化操作
image.png
刷新页面就有复制新建按钮,点击后弹出一个新窗口,在新窗口里面修改一下数据,点击确定即可添加成功
image.png
image.png


本文关键词:

希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, LeCMS, ClassCMS, Fastadmin, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部