其他分享
首页 > 其他分享> > laravel笔记5 无线分类1

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}}  

 

 

 

   

标签:laravel,Category,level,request,笔记,item,cates,category,无线
来源: https://www.cnblogs.com/fightforcoder/p/13456229.html