齐博x1第四季《模块插件的制作》系列31-内容编辑和内容删除

2022-04-18 作者:torylf 分类:教程 阅读:757

我们之前讲了内容的添加,并且在前台展示了所添加的内容,本节来说明如何进行内容编辑和内容删除

我们在表单器那里讲过,利用addContent方法,也是齐博官方提供公共方法,可以返回一个添加内容的表单页面

返回添加表单内容的公共模板


我们今天讲的编辑内容,同样需要一个模板来编辑内容。

两种方法:

一个是自行定义编辑表单的模板来实现表单编辑,也就是 $this->fetch() 返回自定义的编辑模板;

另一个就是和上面相同使用系统提供的公共编辑方法,即editContent();

我们定义一个edit方法,直接返回这个editContent方法看下效果



后台点击编辑,返回的同样是填写表单的内容,但是感觉怪怪的。

编辑应该是修改现有的内容,而不是添加内容,所以每个表单应该是有内容才对的,所以我们这个editContent方法是需要参数的。


注:不管是addContent还是editContent都是需要引入,系统的AddEditList类的


我们先看下editContent的系统定义,需要三个参数

第一个参数是传递数据内容;

第二个参数是修改提交后,跳转的地址,这里默认是index页,也是列表页;

第三个是入口类型,可以填入admin,index,member的三个入口


我们先解决编辑数据问题,需要传递一个数据参数。

我们需要给我们edit的方法,传递一个id参数,通过id来获取对应的列表数据

这里在模型里定义一个通过id获取内容的方法,具体获取内容的方法我们不再详述,只要知道这里可以获取到对应id数据即可

然后我们传递到editContent方法内,因为我们列表页不是index方法,所以修改为列表页的方法。我们再看编辑页:

这时,我们已有的内容已经正常获取,可以直接编辑即可。

当然这里文本字段可以直接修改,但是一些数组等一些特殊类型的字段,也是需要经过一些转换才可以存储到数据库里,

否则是无法保存的,和前台输出类型是一样的,这里不在多述。


还有特别注意一点,我们增加的edit,delete等方法,是需要在admin_menu。php添加一下权限声明的,否则会报权限错误。

因为我们是在test这个类添加,所以代码如下:


添加后,后台也需要添加一下对应权限



下面我们再说一下删除方法,如果我们是根据系统的cms做二次开发,那么删除方法最简单,系统都已经给我们定义好,直接使用系统自带的即可。

但是我们这里演示的都是和cms无关的,都是单独定义的模块,一般删除还是需要自己定义一下的。


我们在模型里定义一个删除单条记录的方法供演示

我们可以看到,通过id,可以使用thinkphp提供的destroy方法删除一条记录,如果正常删除,返回true。

我们在delete方法里判断如果是true,那么返回成功。


如果是多条记录删除,这时候就要判断传递的ids参数是否为数组,因为公共模板接收的就是ids参数,然后进行循环单条记录的删除;

多条记录删除可以参考官方的cms删除方法,这里也不在多述。后面项目实例我们会实际说明。







来源: 神盾工作室    转载请注明出处!

本文地址:https://www.shieldsoho.com/article/139.html

{{item.nickname}} @回复
发表于{{item.create_time}}

  • {{replyitem.nickname}} {{item.create_time}}
    @{{item.nickname}}

查看更多评论