资讯专栏INFORMATION COLUMN

PHP框架之ThinkPHP模块开发系列八,无限级分类的删除

BWrong / 2955人阅读

摘要:我们在新建一个删除前的钩子函数,再利用递归方法实现子栏目的删除。最后我们删除把钩子函数恢复到原始状态在浏览器中输入,然后点击美国一栏中的删除,此时会同时删除美国下的纽约。至此,无限级分类的删除功能操作完毕。

在此现更正一下之前的预告,之前忘记了先应该把无限级分类栏目列表功能做完,也就是删除功能还没做,所以今天我们先做删除,下一节再做面包屑导航。非常抱歉。

同时,不知道是什么原因,上一节文章审核了7个多小时才审核通过,如果没有看到上一节的请点击浏览:PHP框架之ThinkPHP模块开发系列七,无限级分类2,无限级分类的格式化显示

下面正式开始我们的删除功能的制作

删除

基本思路:

完善cate.html,增加删除链接地址,如图:

链接地址

代码解释:

__CONTROLLER__为当前控制器,即CategoryController控制器。

Del为当前控制器中的删除方法。

Id为以id为参数进行传值。

{$vo.id}为传递的id的值。

构建del方法

接着我们打开CategoryController.class.php,在此控制器内新建删除方法del,并接收id参数,根据id的值进行删除操作。代码如图:

删除方法

构建子分类删除方法

Thinkphp有一个很实用的钩子函数,我们利用此函数进行子栏目删除操作。我们在CategoryModel.class.php新建一个删除前的钩子函数:_before_delete,再利用递归方法实现子栏目的删除。

代码如图:

opition参数。我们可以利用var_dump方法,打印出opition,来详细了解其数据结构。

第一步,我们先在钩子函数_before_delete中写入var_dump($opition);die;

打印操作

第二步,然后在浏览器中点击删除河北按钮,显示如图:

打印出的数据

当我们点击删除的河北省的时候,其会先获取河北省的id等相关数据。它是一个二维数组,我们需要的是数组中的ID值。我们根据获取到的id,利用递归方法(deltree)查找它下面是否还有子栏目,如果有就将符合条件的数据的id存入到静态数组arr中,并返回出去,然后利用php函数中的implode函数,将arr数组中的id,以“,”形势分割,并存入ids中,如果ids不为空,则执行删除操作。

这里需要特别说明的是,在model层,必须写原生态的PHP语句。

最后我们删除var_dump($opition);die;把钩子函数_before_delete恢复到原始状态

在浏览器中输入:http://localhost/tp3/admin.ph...,然后点击“美国”一栏中的删除,此时会同时删除美国下的纽约。同时mysql数据库中也会删除相关数据。

至此,无限级分类的删除功能操作完毕。

喜欢的话,可以关注我们。如有疑问可以留言,我们会第一时间进行反馈。感谢!
本文由头条号“生命一路前行”原创,由甲爪日付广告联盟(www.jiazhua.com)整理编辑!转载请注明!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30593.html

相关文章

  • 国产PHP框架——ThinkPHP各功能开发系列一 环境搭建

    摘要:在程序开发前,首先要做好本地环境的搭建,以及准备好所需程序及各种原料。本系列使用的是版本。国产框架各功能开发系列三,将开始在本地环境中配制,完成数据库搭建前后台搭建等功能。 自此开始我们将逐一介绍如何利用国产优秀php框架ThinkPHP开发登录、上传、无限极分类、图文发布等各功能模块,如果喜欢请关注头条号生命一路前行。 在程序开发前,首先要做好本地环境的搭建,以及准备好所需程序及各种...

    tigerZH 评论0 收藏0
  • PHP_ThinkPHP

    摘要:相关信息,面向过程,面向对象,轻量级。轻量级功能实用,面向过程和面向对象混合开发。找到文件为文件名为验证码类没有在自动加载类中载入,需要手动载入。底层的和会影响原始的框架中的引入,可以使用框架中提供的引入。 不使用框架的问题 在实际工作中,如果不使用框架会遇到的问题。 程序项目生命时间非常短(维护性,生命力弱) 分共协作开发项目,彼此代码风格不一致。 开发程序,喜欢挖坑。 开发者离职...

    wind3110991 评论0 收藏0
  • JS或Jquery

    摘要:大潮来袭前端开发能做些什么去年谷歌和火狐针对提出了的标准,顾名思义,即的体验方式,我们可以戴着头显享受沉浸式的网页,新的标准让我们可以使用语言来开发。 VR 大潮来袭 --- 前端开发能做些什么 去年谷歌和火狐针对 WebVR 提出了 WebVR API 的标准,顾名思义,WebVR 即 web + VR 的体验方式,我们可以戴着头显享受沉浸式的网页,新的 API 标准让我们可以使用 ...

    CatalpaFlat 评论0 收藏0
  • 解读 thinkphp5 源码(二):异常处理和请求生命周期

    摘要:异常处理上节解读源码一自动加载看完了自动加载部分,根据代码执行顺序,的行注册错误和异常处理机制加载惯例配置文件下面的加载配置文件不用说,现在重点看一下异常处理。博客链接解读源码二异常处理和请求生命周期 异常处理 上节解读 thinkphp5 源码(一):自动加载看完了自动加载部分,根据代码执行顺序,base.php的59-64行 // 注册错误和异常处理机制 hinkError::r...

    yuanzhanghu 评论0 收藏0
  • 设计模式系列·Facade模式MVC烦恼

    摘要:没有任何意外,王小二的公司用来开发公司的主打产品。臃肿的着手开干吧小二打开熟悉的,找到提交订单模块的。要不再去请教下哥的烦恼小二找到哥,详细的描述了他的问题。 流行的MVC架构模式 如今的Web开发,各种框架风起云涌,势如破竹。 从国民第一的ThinkPhp到称霸全球的Laravel,这些框架有一个共同特征,都采用了MVC的架构模式。 showImg(https://segmentfa...

    zhichangterry 评论0 收藏0

发表评论

0条评论

BWrong

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<