ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

laravel笔记5 无线分类1

2020-08-08 05:31:16  阅读:296  来源: 互联网

标签:laravel Category level request 笔记 item cates category 无线


错误提示

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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有