美文网首页laravel
laravel5.8无限极分类

laravel5.8无限极分类

作者: 这真的是一个帅气的名字 | 来源:发表于2019-08-05 23:03 被阅读0次

创建资源控制器

php artisan make:controller -r

创建模型和迁移文件

php artisan make:model Cate -m

修改迁移文件创建分类表

 Schema::create('cates', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string("name",60)->comment("名称");
            $table->integer("pid")->default(0)->comment("上级ID");
            $table->integer("sort")->default(100)->comment("排序");
            $table->timestamps();
});
php artisan db:seed

路由

Route::get("/cate/index",'CateController@index')->name('cate.index');
//允许post和get同时使用
Route::match(['get','post'],"/cate/create",'CateController@create')->name('cate.create');

控制器

 /**
     * 分类列表
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $cate = new Cate();
        $list = $cate->getcates();
        return view("admin.cate.index")->with("list",$list);
    }

    /**
     * 添加分类
     *
     * @return \Illuminate\Http\Response
     */
    public function create(Request $request)
    {
        $category = new Cate();
        if($request->isMethod("POST")){

            $category->name = $request->cname;
            $category->sort = $request->sort;
            $category->pid = $request->pid;
            $res = $category->save();
            if($res){
                $request->session()->flash("success","添加成功");
            }else{
                $request->session()->flash("errormsg","用户名或密码错误");
            }
            return redirect('admin/cate/index');
        }
        $cates = $category->getcates();
        return view("admin.cate.create")->with("list",$cates);
    }

模型

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Cate extends Model
{
    //获取分类列表
    static public function getcates(){
        $cates = self::OrderBy("sort","Desc")->OrderBy("id","Desc")->get();
        $cates = self::makecates($cates);
        return $cates;
    }


    /**
     * @param $data
     * @param int $pid
     * @param int $level
     */
    static function makecates($data,$pid=0,$level=0){
        $arr = [];
        foreach ($data as $item){
            if($item->pid == $pid){
                $item->level = $level;
                $arr[] = $item;
                $res = self::makecates($data,$item->id,$level+1);//递归
                $arr = array_merge($arr,$res);
            }
        }
        return $arr;
    }
}

列表模板

 <div class="portlet box blue ">
<div class="portlet-title">
    <div class="caption"><i class="icon-cogs"></i>分类列表</div>
</div>
    @if(session()->has("errormsg"))
        <div class="alert alert-error ">
            <button class="close" data-dismiss="alert"></button>
            <span>{{ session("errormsg") }}</span>
        </div>
    @endif
    @if(session()->has("success"))
        <div class="alert alert-success ">
            <button class="close" data-dismiss="alert"></button>
            <span>{{ session("success") }}</span>
        </div>
    @endif
    <div class="portlet-body">
        <table class="table table-hover ">
            <thead>
            <tr>
                <th class="text-center">ID</th>
                <th class="text-center">分类名称</th>
                <th class="text-center">父ID</th>
                <th  class="text-center">排序</th>
                <th class="text-center">操作</th>
            </tr>
            </thead>
            <tbody>
            @foreach($list as $item)
            <tr>
                <td  class="text-center">{{ $item->id }}</td>
                <td  class="text-center">{{ ($item->level == 0 ? "": "|") }}{{ str_repeat("----",$item->level) }}{{ $item->name }}</td>
                <td  class="text-center">{{ $item->pid }}/{{ $item->level }}</td>
                <td   class="text-center"class="hidden-480">{{ $item->sort }}</td>
                <td  class="text-center">
                    <a href="#" class="btn mini red"><i class="icon-trash"></i> 删除</a>
                    <a href="#" class="btn mini blue"><i class=" icon-pencil"></i> 修改</a>
                </td>
            </tr>
            @endforeach

            </tbody>
        </table>
    </div>
</div>

添加模板


 <form action="?" class="form-horizontal" method="post">
    @csrf
    <div class="control-group">
        <label class="control-label">分类名称</label>
        <div class="controls">
            <input type="text" name="cname" class="span6 m-wrap" />
        </div>
    </div>

    <div class="control-group">
        <label class="control-label">上级分类</label>
        <div class="controls">
            <select class="span6 m-wrap" name="pid" id="pid" data-placeholder="Choose a Category" tabindex="1">
                <option value="0">顶级栏目</option>
                @foreach($list as $res)
                <option value="{{ $res->id }}">{{ ($res->level == 0 ? "": "|") }}{{ str_repeat("----",$res->level) }}{{ $res->name }}</option>
                @endforeach
            </select>
        </div>
    </div>
    <div class="control-group">
        <label class="control-label">排序</label>
        <div class="controls">
            <input type="text" name="sort" placeholder="100" class="span6 m-wrap" />
        </div>
    </div>

    <div class="form-actions">
        <button type="submit" class="btn blue">添加</button>
    </div>
</form>

相关文章

  • laravel5.8无限极分类

    创建资源控制器 创建模型和迁移文件 修改迁移文件创建分类表 路由 控制器 模型 列表模板 添加模板

  • php实现无限极分类

    一、两种实现php无限极分类 设置原始数据 1. 使用php递归实现php无限极分类 通过foreach循环实现无...

  • PHP 无限极分类

    概述   在实际工作中,经常要用到无限极分类。如导航表等等。到网上一搜php无限极分类,很多,但好多都是一个,并且...

  • 无限极分类原理与实现

    前言 无限极分类是我很久前学到知识,今天在做一个项目时,发现对其概念有点模糊,所以今天就来说说无限极分类。 首先来...

  • 无限极分类

    result

  • laravel无限级分类

    用laravel 做无限极分类;找了很多资料;假大空;有很多都是残缺的;而且达不到预期;无法做到无限极;今天分享下...

  • 树状无限极分类

    树状无限极分类 提供2种方式 function getTree($list,$id=0,$level=0) { s...

  • PHP无限极分类

    要了解这两种方式具体内容,可以去查看这篇博客: 左右值无限分类实现算法 本文主要提供两种将符合无限极分类格式的二维...

  • php无限极分类

    递归--无限极分类 递归--子孙树转二维数组 可以配合Nestable使用 递归--获取树所有叶子节点 结果1 结...

  • PHP 无限极分类

    1.循环迭代实现无限极分类 输出结果如下: 分析:这个算法利用了循环迭代,将线性结构按照父子关系以树形结构输出,算...

网友评论

    本文标题:laravel5.8无限极分类

    本文链接:https://www.haomeiwen.com/subject/smxbdctx.html