问答项目---栏目增删改方法示例

具体方法:

// 递归重新排序无限极子分类数组
function recursive($array,$pid=0,$level=0){
    $arr = array();
    foreach ($array as $v) {
        if($v[‘pid‘] == $pid){
            $v[‘level‘] = $level;
            $v[‘html‘] = str_repeat(‘--‘,$level);
            $arr[] = $v;
            $arr = array_merge($arr,recursive($array,$v[‘id‘],$level+1));
        }
    }
    return $arr;
}
//递归获取所有的子分类的ID
function get_all_child($array,$id){
    $arr = array();
    foreach($array as $v){
        if($v[‘pid‘] == $id){
            $arr[] = $v[‘id‘];
            $arr = array_merge($arr,get_all_child($array,$v[‘id‘]));
        };
    };
    return $arr;
}

增删改方法示例:

<?php
namespace Admin\Controller;
use Think\Controller;
class CategoryController extends Controller {
    public function index(){
        $cateTopList = M(‘category‘)->select();
        $cateTopList = recursive($cateTopList);
        $this->assign(‘cateTopList‘,$cateTopList);
        $this->display();
    }
    public function addTop(){
        $this->display();
    }
    public function addCate(){
        $data = I(‘post.‘);
        if(M(‘category‘)->add($data)){
            $this->success(‘添加成功‘, ‘index‘);
        }else{
            $this->error(‘添加失败‘);
        };
    }
    // 添加子分类
    public function addChild(){
        $pid = I(‘get.pid‘);
        $where = array(‘id‘ => $pid);
        $pCateName = M(‘category‘)->where($where)->getField(‘name‘);
        $this->assign(‘pid‘,$pid);
        $this->assign(‘pCateName‘,$pCateName);
        $this->display();
    }
    //修改分类
    public function edit(){
        $pid = I(‘get.pid‘);
        $where = array(‘id‘ => $pid);
        $pCateName = M(‘category‘)->where($where)->getField(‘name‘);
        $this->assign(‘pid‘,$pid);
        $this->assign(‘pCateName‘,$pCateName);
        $this->display();
    }
    public function editCate(){
        $post = I(‘post.‘);
        $date = array(
            ‘id‘ => $post[‘pid‘],
            ‘name‘ => $post[‘name‘]
        );
        if(M(‘category‘)->save($date)){
            $this->success(‘修改成功‘,‘Index‘);
        }else{
            $this->error(‘修改失败‘);
        };
    }
    //删除分类
    public function delCate(){
        $get = I(‘get.pid‘);
        $cateId = M(‘category‘)->field(array(‘id‘,‘pid‘))->select();
        $delId = get_all_child($cateId,$get);
        $delId[] = $get;
        $where = array(
            ‘id‘ => array(‘IN‘,$delId)
        );
        if(!M(‘category‘)->where($where)->delete()){
            $this->error(‘删除失败‘);
        };
        $this->success(‘删除成功‘,U(‘index‘));
    }
}
时间: 2024-11-02 15:12:43

问答项目---栏目增删改方法示例的相关文章

springboot(十五):springboot+jpa+thymeleaf增删改查示例

这篇文章介绍如何使用jpa和thymeleaf做一个增删改查的示例. 先和大家聊聊我为什么喜欢写这种脚手架的项目,在我学习一门新技术的时候,总是想快速的搭建起一个demo来试试它的效果,越简单越容易上手最好.在网上找相关资料的时候总是很麻烦,有的文章写的挺不错的但是没有源代码,有的有源代码但是文章介绍又不是很清楚,所在找资料的时候稍微有点费劲.因此在我学习Spring Boot的时候,会写一些最简单基本的示例项目,一方面方便其它朋友以最快的方式去了解,一方面如果我的项目需要用到相关技术的时候,直

spring boot(十五)spring boot+thymeleaf+jpa增删改查示例

快速上手 配置文件 pom包配置 pom包里面添加jpa和thymeleaf的相关包引用 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.

Spring Boot (十五): Spring Boot + Jpa + Thymeleaf 增删改查示例

这篇文章介绍如何使用 Jpa 和 Thymeleaf 做一个增删改查的示例. 先和大家聊聊我为什么喜欢写这种脚手架的项目,在我学习一门新技术的时候,总是想快速的搭建起一个 Demo 来试试它的效果,越简单越容易上手最好.在网上找相关资料的时候总是很麻烦,有的文章写的挺不错的但是没有源代码,有的有源代码但是文章介绍又不是很清楚,所在找资料的时候稍微有点费劲.因此在我学习 Spring Boot 的时候,会写一些最简单基本的示例项目,一方面方便其它朋友以最快的方式去了解,一方面如果我的项目需要用到相

Rhythmk 学习 Hibernate 01 - maven 创建Hibernate 项目之 增删改查入门

1.环境: Maven :3.1.1 开发工具:Spring Tool Suite 数据库 : Mysql  5.6 2.项目文件结构 文件代码: 2.1 .pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.ap

Entity Framework公共的增删改方法

using System; using System.Collections.Generic; using System.Data.Entity; using System.Data.Entity.Infrastructure; namespace My { /// <summary> Entity Framework公共的增删改方法.返回的是受影响的行数 </summary> public class PublicStore { //新增 public static int In

js操作indexedDB增删改查示例

js操作indexedDB增删改查示例 if ('indexedDB' in window) { // 如果数据库不存在则创建,如果存在但是version更大,会自动升级不会复制原来的版本 var req = indexedDB.open("TestDB", 1); req.onupgradeneeded = function(e) { var db = req.result; // var store = db.createObjectStore("student"

进入全屏 nodejs+express+mysql实现restful风格的增删改查示例

首先,放上项目github地址:https://github.com/codethereforam/express-mysql-demo 一.前言 之前学的java,一直用的ssm框架写后台.前段时间接触到node.js,于是花了两天时间学了一下node.js并写了一个CRUD简单示例.由于前几天一直学用github pages搭建博客,一直没时间写README,今天有空补了上来. 下面来内容自于项目的README. 二.项目介绍 基于node.js + express + mysql实现的re

SpringBoot JPA + H2增删改查示例

下面的例子是基于SpringBoot JPA以及H2数据库来实现的,下面就开始搭建项目吧. 首先看下项目的整体结构: 具体操作步骤: 打开IDEA,创建一个新的Spring Initializr项目,填写好groupID等信息,依赖勾选web和H2,一路next: pom.xml关键依赖: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactI

MongoDB学习笔记~为IMongoRepository接口添加了增删改方法,针对官方驱动

上一讲说了MongoDB官方驱动的查询功能,这回说一下官方驱动的增删改功能,驱动在升级为2.0后,相应的insert,update和delete都只有了异步版本(或者叫并行版本),这当然也是跟着.net走的正方向,大事所趋,但有时,我们的前台已经使用同步方式实现了,为了不改变前台代码,所以,后台的异步版本可能不是我们所需要的,所以,我们需要将它进行一些改造,把异步改为同步,即主线程等待异步方法执行结束后,再进行下面的代码,这样,可以保证方法的正确性. 由于insert,update,delete