【laravel】blog项目实战笔记-后台多级分类列表创建及Ajax异步修改分类排序

2022-05-15 0 260

总想自己一个人做一个小的项目,但是不知道怎么着手,平时上班时总是做项目中某个部分的任务,没有整体做一个项目,下面是我看即刻码站的视频整理的笔记,供大家参考。这是在Windows环境下做的blog实战项目,以下文章是项目的一部分,我一节一节分享的,要想看更多关注我,我会持续更新。

一、后台文章分类页多级分类列表

1)添加多级分类注意cate_pid和cate_id一样就证明它在哪个分类下

2)添加个方法处理分类

public function getTree(){}

3)在上面的方法里调下面的方法

$data = $this->getTree($categroy);public function index(){$categroy = CategroyModel::all();$data = $this->getTree($categroy,'cate_name','cate_pid','cate_id');return view('home/categroy/index')->with('data',$data);}

4)下面打印一下看上面参数是否传进来

public function getTree($data){dd($data);}

5)首先把cate_pid是0的给筛选出来,然后再次循环把cate_pid和cate_id相等的筛选出来,为了让方法更加强壮,我们想到用传参的方式,

public function getTree($data,'$file_pid=‘pid’,$file_id=‘id’,$pid=0){     $arr = array();   foreach($data as $key =>$value){if($value->$file_pid==$pid){$data[$key]["_cate_name"]=$data[$key]["cate_name"];$arr[] = $data[$key];foreach($data as $k=>$v{                    if($value->$file_pid==$v->$file_id){      //新定义个字段把分类的下级定义出来$data[$k]["_cata_name"]='-->'.$data[$k]["cate_name"]$arr[]=$data[$v];}       }      }   }

更好的优化代码:

把控制器里的整理数据的过程放到模型中

public static function tree(){   //用的是静态方法$categroy =  CategroyModel::all();return (new CategroyModel)->getTree($categroy,'cate_name','cate_pid','cate_id');}public function tree(){$categroy = $this->all();return $this->getTree($categroy,'cate_name','cate_pid','cate_id');}public function getTree($data,'$file_pid=‘pid’,$file_id=‘’,$pid=0){$arr = array();foreach($data as $key =>$value){if($value->$file_pid==$pid){$data[$key]["_cate_name"]=$data[$key]["cate_name"];$arr[] = $data[$key];foreach($data as $k=>$v{if($value->$file_pid==$v->$file_id){//新定义个字段把分类的下级定义出来$data[$k]["_cata_name"]='-->'.$data[$k]["cate_name"]$arr[]=$data[$v];}}}}

控制器里的修改:

public function index(){// $data= CategroyModel::Tree();   不是静态方法不能用静态方法调用   调用静态方法$data =(new CategroyModel)->Tree();   调用不是静态方法return view('home/categroy/index')->with('data',$data);}

二、后台文章分类页Ajax异步修改分类排序

1)看主模板里是否引入jquery

2)写一下JS

$(function(){});

写jquery的基本格式

$(function(){alert();});

3)要用JS发送异步

因为我要操作这个input表单时发送事件,

<input type="text" onchange="onchangeOrder()" value="{{$v->cate_order}}">  //加一个事件onchange,请求方法onchangeOrder方法

4)(2)是测试的,

function onangeOrder(){alert();}

5)接下来发送异步请求了

function onchangeOrder(){$.post("",{});//第一个url,第二个参数,第三个是回调函数function($data){}回调函数里我们用$data接收}

6)分配地址

function onchangeOrder(){$.post("{{url('admin/cate/changeorder')}}",{},function($data){});}

7)分配路由

Route::post('admin/changeorder','CategoryController@changeorder');

8)新建控制器CategoryController.php

public function changeorder(){      echo 123;   }

9)把token值传给后台

function onchangeOrder(){$.post("{{url('admin/cate/changeorder')}}",{'_token':'{{csrf_token()}}'},function($data){});}

10)再传几个参数过去,第一个参数是_token参数,第二个参数是修改哪个参数的信息,第三个参数就是把这个分类信息改成多少

修改哪个条的信息

<input type="text" onchange="onchangeOrder({{$v->cate_id}})" value="{{$v->cate_order}}">

这个分类信息改成多少

<input type="text" onchange="onchangeOrder(this,{{$v->cate_id}})" value="{{$v->cate_order}}"> //能找到当前输入的值到底多少

11)下面的接受参数,第一个就是对象,第二个就是cate_id

function onchangeOrder(obj,cate_id){$.post("{{url('home/cate/changeorder')}}",{'_token':'{{csrf_token()}}'},function($data){});}

12)通过obj读取咱们当前输入的值到底是多少

那么咱们定义一个变量,cate_order 等于$()然后把obj传进去,然后它的.val()

function onchangeOrder(obj,cate_id){var cate_order=$(obj).val();$.post("{{url('home/cate/changeorder')}}",{'_token':'{{csrf_token()}}'},function($data){});}

还有cate_id就是咱们传过来 的参数就不用处理了

13)下面却几个参数处理一下

function onchangeOrder(obj,cate_id){var cate_order=$(obj).val();$.post("{{url('home/cate/changeorder')}}",{'_token':'{{csrf_token()}}','cate_id':cate_id,'cate_order':cate_order},function($data){});}

14)传给controller后怎么接受

public function changeorder(){//用input方法接受前台传过来的值 $input= Input::all();print_r( $input);}

15)然后取数据库对应cate_id数据,改变对应cate_order的值,然后跟新这条数据

public function changeorder(){//用input方法接受前台传过来的值$input= Input::all();    $cate=CategroyModel::find($input['cate_id']);      //然后改变order参数   $cate->cate_order=$input['cate_order'];    //更新数据库    $res = $cate->update();}

16)更新时,给前台一个提示,这是我们给一个$data[]传给前台

public function changeorder(){//用input方法接受前台传过来的值$input= Input::all();$cate=CategroyModel::find($input['cate_id']);//然后改变order参数$cate->cate_order=$input['cate_order'];//执行更新操作$res=$cate->update(); if($res){        $data=[            'status'=> 0,            'msg'=>'更新成功!',        ];    }else{        $data=[            'status'=> 1,            'msg'=>'更新失败!',        ];    }   return $data;   //别忘了返回值}

17)获取回调函数的值

function onchangeOrder(obj,cate_id){var cate_order=$(obj).val();$.post("{{url('home/cate/changeorder')}}",{'_token':'{{csrf_token()}}','cate_id':cate_id,'cate_order':cate_order},function(data){alert(data.msg);});}

现在整体完成,但是弹窗太丑,下节给大家分享弹窗安装信息。

以上步骤是我学习的笔记,我把要操作的步骤或重点的记了下来,如果哪有不懂可以留言。谢谢大家支持。希望能为小白提供帮助,如果想看更多blog项目信息,关注我,下一篇继续分享。

相关推荐:《laravel教程》

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

【声明:根据2013年1月30日《计算机软件保护条例》2次修订第17条规定: 为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存 储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬! 鉴于此,也希望大家按此说明研究软件!】
本站所有源码尽量保证原汁原味,如有特殊情况会作出声明及标注,网站资源不做任何二次加密(原版加密除外,不影响程序使用的不会做解密处理),方便您更好的学习参考。 在您的能力范围内,为了大环境的良性发展,请尽可能的选择正版资源。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

即刻码站__国内靠谱的站长资源下载平台 php教程 【laravel】blog项目实战笔记-后台多级分类列表创建及Ajax异步修改分类排序 https://www.jike1995.com/35956.html

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务