微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

laravel笔记5 无线分类1

错误提示

Class 'App\Http\Controllers\Admin\Category' not found

解决

namespace App\Http\Controllers\Admin; use App\Category; use Illuminate\Http\Request; use App\Http\Controllers\Controller; 创建相应控制器category的时候没有引入模型,所以在控制器文件最上面要引入控制器use App\Category; +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

错误提示

ErrorException (E_ERROR)

Route [admin.category.edit] not defined. (View: E:\PHPStudy_64\PHPstudy_pro\WWW\yfkt.com\resources\views\admin\category\index.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; 返回数据以后,打开控制器app\Http\Controllers\Admin\CategoryController.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}}  

 

 

 

   

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。