PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通

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

复制某一行数据并新建

管理员 2024-12-14
Fastadmin
8

当我们添加一些数据的时候,有些数据很多列都是重复的,只有一、两列才会有变动,如果用导入导出的功能又太麻烦,因为数据可能就几条,所以很多软件都会有复制新建功能
在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, Fastadmin, ClassCMS, LeCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部