• 技术文章 >php框架 >Laravel

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

    小思绪*^_^*小思绪*^_^*2021-09-09 16:54:02原创77
    总想自己一个人做一个小的项目,但是不知道怎么着手,平时上班时总是做项目中某个部分的任务,没有整体做一个项目,下面是我看php中文网的视频整理的笔记,供大家参考。这是在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教程

    以上就是【laravel】blog项目实战笔记-后台多级分类列表创建及Ajax异步修改分类排序的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:laravel blog
    上一篇:【laravel】blog项目实战笔记-valicator验证及分类页功能创建 下一篇:总结Laravel中常用的PHP语法有哪些
    线上培训班

    相关文章推荐

    • zblog php 忘记密码怎么办• 【laravel】blog项目实战笔记-创建项目及登录的操作• 【laravel】blog项目实战笔记-登录的操作及后台首页的创建• 【laravel】blog项目实战笔记-valicator验证及分类页功能创建

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网