zoukankan      html  css  js  c++  java
  • laravel笔记5 无线分类1

    错误提示

    Class 'AppHttpControllersAdminCategory' not found

    解决

    namespace AppHttpControllersAdmin;
    use AppCategory;
    use IlluminateHttpRequest;
    use AppHttpControllersController;
    创建相应控制器category的时候没有引入模型,所以在控制器文件最上面要引入控制器use AppCategory;
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    错误提示

    ErrorException (E_ERROR)

    Route [admin.category.edit] not defined. (View: E:phpStudy_64phpstudy_proWWWyfkt.com esourcesviewsadmincategoryindex.blade.php)

    解决

    创建edit路由

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    分类模块如果没有使用resource创建路由 最后使用match方式来添加指定数据提交方式 然后在控制器里面这样写

    public function create(Request $request){
    //判断提交的方式是哪个 然后在保存到数据库
            if($request->isMethod('post')){
                // dd($request->post());
                $category = new Category();
                $category->name = $request->name;
                $category->sort = $request->sort;
                $result = $category->save();
                //上述结果如果添加成功返回的是布尔值
                checkreturn($result,'添加');
                return redirect(route('admin.category.list'));
            }
            return view('admin.category.create');
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    实现无限极分类功能(以城市为例)

    首先要在模型里面获取数据 打开模型文件app下的Category.php

    class Category extends Model
    {
        //获取分类列表
        static public function getcates(){
            $cates = self::get();
            return$cates;
    返回数据以后,打开控制器appHttpControllersAdminCategoryController.php把数据with到视图模板里面
      //添加分类
        public function create(Request $request){
            if($request->isMethod('post')){
                // dd($request->post());
                $category = new Category();
                $category->name = $request->name;
                $category->sort = $request->sort;
                $category->pid = $request->pid;
                $result = $category->save();
                //上述结果如果添加成功返回的是布尔值
                checkreturn($result,'添加');
                return redirect(route('admin.category.list'));
            }
            $cates = Category::getcates();
            return view('admin.category.create')->with('cates',$cates);
     
        }
    }
    最后到视图模板里面在相应的循环地方进行循环
    <div class="form-group">
                      <label for="pid">上级分类</label>
                        <select class="form-control" name = 'pid' id="pid">
                          <option value="0">顶级分类</option>
                          @foreach ($cates as $item)
                        <option value="{{$item->id}}">{{$item->name}}</option>
                          @endforeach 
    ###################################################################################

    实现无限分类层级关系显示(补充

    首先到Category.php模型文件把获取的数据进行重组

    class Category extends Model
    {
        //获取分类列表
        static public function getcates(){
            $cates = self::OrderBy('sort','Desc')->OrderBy('id','Desc')->get();
            //$cates可以获取传入所有参数
            $cates = self::makecates($cates);
            return$cates;
        }
        //重新组织数据
        static function makecates($data,$pid=0,$level=0){
            $arr = [];
            foreach ($data as $item){
                if($item->pid == $pid){
                    $item->level = $level;
                    $arr[] = $item;        //如果pid相等,那么同一分类层级的数据放在arr数组里
                    //循环完同一层级的数据,然后用递归的方式找到低层级的数据
                    //$item->id就是相对应的item下的pid
                    //找到相应item下的数据保存到临时的arr_tmp
                    $arr_tmp = self::makecates($data,$item->id,$level+1);
                    //把两个数据进行合并 最后返回$arr
                    $arr = array_merge($arr,$arr_tmp);
                }
            }
            return $arr;
        }
    }
    然后去控制器文件CategoryController里面修改获取数据的参数
      public function index(){
            //使用模型方式获取数据然后with到view模板
            // $list = Category::Orderby('sort','Desc')->Orderby('id','Desc')->get();
            $list = Category::getcates();
            //dd($list);
            return view('admin.category.index')->with('list',$list);
        }
    最后到blade模板里面在相应的地方修改
    <div class="form-group">
       <label for="pid">上级分类</label>
         <select class="form-control" name = 'pid' id="pid">
            <option value="0">顶级分类</option>
               @foreach ($cates as $item)
          //使用三元运算符如果level是0的话名称前面是空,否则前面带一条竖线,同时根据level属性重复字符‘-----’
            <option value="{{$item->id}}">{{($item->level==0)?'':'|'}}{{str_repeat('-----',$item->level)}}{{$item->name}}</option>
               @endforeach 
     
    同时添加分类的时候在相应blade视图模板里面添加{{$item->id}}">{{($item->level==0)?'':'|'}}{{str_repeat('-----',$item->level)}}{{$item->name}}
     


     


     
     
  • 相关阅读:
    C++ 编码转换
    获取文件扩展名
    字符串分割(C++)(转载)
    Visual Leak Detector简明使用教程
    Win32 文件拖拽
    IMAP协议命令(详细)
    CreateDirectory 创建文件夹 CC++
    编程习惯总结
    GitHub上整理的一些工具,求补充
    jquery生成qrcode二维码
  • 原文地址:https://www.cnblogs.com/fightforcoder/p/13456229.html
Copyright © 2011-2022 走看看