婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫 > 在Laravel中使用DataTables插件的方法

在Laravel中使用DataTables插件的方法

熱門標(biāo)簽:拉薩打電話機(jī)器人 沈陽人工智能電銷機(jī)器人公司 寶安400電話辦理 智能外呼電銷系統(tǒng) 電銷機(jī)器人-快迭智能 合肥外呼系統(tǒng)app h5 地圖標(biāo)注 高識(shí)別電銷機(jī)器人 哈爾濱400電話辦理到易號(hào)網(wǎng)

DataTables 是一個(gè) jQuery 的表格插件,記錄一下在 Laravel 中使用的常用功能和用法,比如 ajax 獲取數(shù)據(jù),自定義搜索,效果展現(xiàn),選項(xiàng)說明等等,有一些細(xì)節(jié)記錄下來方便以后查看。

Laravel 控制器方法

接受 ajax get 請(qǐng)求,返回?cái)?shù)據(jù)。

dataTables 會(huì)自帶一些參數(shù)過來,需要按照格式返回?cái)?shù)據(jù),比如分頁等。見 dataTables 官方文檔說明。

代碼如下:

// ajax GET 獲取列表數(shù)據(jù)
public function getList(Request $request)
{
  $dynamicType = $request->get('dynamic_type');
  $draw = $request->get('draw');
  $start = $request->get('start');
  $length = $request->get('length');
  $groupId = $request->get('group_id');
  $dynamicId = $request->get('dynamic_id');
  $userid = $request->get('userid');
  $isAudit = $request->get('is_audit', 0);

  if (!$dynamicType || !in_array($dynamicType, [1, 2])) {
    return response()->json(['error' => '缺少參數(shù)!']);
  }

  $builder = Dynamics::select(['id', 'userid', 'group_id', 'dynamic_id', 'dynamic_type', 'content', 'money', 'is_audit', 'audited_at'])->where('dynamic_type', $dynamicType);

  //自定義搜索
  if ($groupId) {
    $builder->where('group_id', $groupId);
  }

  if ($dynamicId) {
    $builder->where('dynamic_id', $dynamicId);
  }

  if ($userid) {
    $builder->where('userid', $userid);
  }

  if (!is_null($isAudit)) {
    $builder->where('is_audit', $isAudit);
  }

  $total = $builder->count();
  $list = $builder->orderBy('id', 'desc')->offset($start)->take($length)->get()->toArray();


  $imgInfo = [];
  $dynamicIds = $this->getDynamicIds($list);
  if ($dynamicIds) {
    $imgInfo = DynamicImage::whereIn('dynamic_id', $dynamicIds)->pluck('images', 'dynamic_id');
  }

  $fillImages = function ($item) use ($imgInfo) {
    if (isset($imgInfo[$item['dynamic_id']])) {
      $item["images"] = json_decode($imgInfo[$item['dynamic_id']]);
    } else {
      $item["images"] = [];
    }
    return $item;
  };
  $list = array_map($fillImages, $list);

  $data = [];
  $data["draw"] = $draw;
  $data["recordsTotal"] = $total;
  $data["recordsFiltered"] = $total;
  $data["data"] = $list;
  return response()->json($data);
}


// ajax GET 獲取列表數(shù)據(jù)
public function getList(Request $request)
{
  $dynamicType = $request->get('dynamic_type');
  $draw = $request->get('draw');
  $start = $request->get('start');
  $length = $request->get('length');
  $groupId = $request->get('group_id');
  $dynamicId = $request->get('dynamic_id');
  $userid = $request->get('userid');
  $isAudit = $request->get('is_audit', 0);
 
  if (!$dynamicType || !in_array($dynamicType, [1, 2])) {
    return response()->json(['error' => '缺少參數(shù)!']);
  }
 
  $builder = Dynamics::select(['id', 'userid', 'group_id', 'dynamic_id', 'dynamic_type', 'content', 'money', 'is_audit', 'audited_at'])->where('dynamic_type', $dynamicType);
 
  //自定義搜索
  if ($groupId) {
    $builder->where('group_id', $groupId);
  }
 
  if ($dynamicId) {
    $builder->where('dynamic_id', $dynamicId);
  }
 
  if ($userid) {
    $builder->where('userid', $userid);
  }
 
  if (!is_null($isAudit)) {
    $builder->where('is_audit', $isAudit);
  }
 
  $total = $builder->count();
  $list = $builder->orderBy('id', 'desc')->offset($start)->take($length)->get()->toArray();
 
 
  $imgInfo = [];
  $dynamicIds = $this->getDynamicIds($list);
  if ($dynamicIds) {
    $imgInfo = DynamicImage::whereIn('dynamic_id', $dynamicIds)->pluck('images', 'dynamic_id');
  }
 
  $fillImages = function ($item) use ($imgInfo) {
    if (isset($imgInfo[$item['dynamic_id']])) {
      $item["images"] = json_decode($imgInfo[$item['dynamic_id']]);
    } else {
      $item["images"] = [];
    }
    return $item;
  };
  $list = array_map($fillImages, $list);
 
  $data = [];
  $data["draw"] = $draw;
  $data["recordsTotal"] = $total;
  $data["recordsFiltered"] = $total;
  $data["data"] = $list;
  return response()->json($data);
}

dataTables 發(fā) ajax 請(qǐng)求及一些選項(xiàng)設(shè)置

columnDefs 用來自定義每個(gè)字段如何展現(xiàn),可以封裝自己的展現(xiàn)邏輯,也可以獲取到這一行各個(gè)字段的值。

createdRow 可以改變創(chuàng)建每一行的行為,比如修改這一行的樣式等等。

table.draw() 方法可以重新發(fā)起 ajax 請(qǐng)求。

script type="text/javascript">
  $dataTable = $("#dataTable");
  var table = $dataTable.DataTable({
    "processing": true,
    "serverSide": true,
    "pageLength": 25,
    "lengthMenu": [10, 25, 50, 75, 100, 200],
    "ajax": {
      "url": "{{ route('audit.getList') }}",
      "data": function (data) {
        data.dynamic_type = "{{ Request::get('dynamic_type', 1) }}";
        data.group_id = $("#group_id").val();
        data.dynamic_id = $("#dynamic_id").val();
        data.userid = $("#userid").val();
        data.is_audit = $("#is_audit").val();
        data.t = "{{ time() }}";
      }
    },
    "columns": [
      {"data": "id"},
      {"data": "userid"},
      {"data": "group_id"},
      {"data": "dynamic_type"},
      {"data": "dynamic_id"},
      {"data": "content"},
      {"data": "images"},
      {"data": "money"},
      {"data": "is_audit"},
      {"data": "audited_at"}
    ],
    "columnDefs": [
      {
        "render": function (data, type, row) {
          if (data == 1) {
            return "活動(dòng)";
          } else if (data == 2) {
            return "動(dòng)態(tài)";
          }
        },
        "targets": 3
      },
      {
        "render": function (data, type, row) {
          html = "";
          $.each(data, function (k, v) {
            html += "a href='" + v.origin + "' target='_blank'>img src='" + v.origin + "' width='160' style='margin-bottom: 2px;'>";
          });
          return html;
        },
        "targets": 6
      },
      {
        "render": function (data, type, row) {
          if (data == 0) {
            return "未審核";
          } else if (data == 1) {
            return "審核通過";
          } else if (data == -1) {
            return "審核不通過";
          }
        },
        "targets": 8
      },
      {
        "render": function (data, type, row) {
          if (row.is_audit == 0) {
            return "a class='btn btn-primary audit' data-type = 1>通過/a> a class='btn btn-danger audit' data-type = 2>不通過/a>";
          }
          return "-";
        },
        "targets": 10
      }
    ],
    "createdRow": function (row, data, index) {
      $('td', row).eq(4).attr('style', 'word-break:break-all');
      $('td', row).eq(2).attr('style', 'word-break:break-all');
      $('td', row).eq(5).attr('style', 'word-break:break-all');
    },
    "language": {
      processing: "數(shù)據(jù)加載中...",
      info: "顯示第 _START_ 至 _END_ 條,共 _TOTAL_ 條記錄",
      infoEmpty: "暫無數(shù)據(jù)",
      lengthMenu: "顯示 _MENU_ 條記錄",
      paginate: {
        first: "首頁",
        previous: "上一頁",
        next: "下一頁",
        last: "最后一頁"
      }
    }
  });

  $dataTable.find('tbody').on('click', '.audit', function () {
    var data = table.row($(this).parents('tr')).data();
    var id = data.id;
    var userid = data.userid;
    var group_id = data.group_id;
    var dynamic_id = data.dynamic_id;
    var dynamic_type = data.dynamic_type;
    var type = $(this).data('type');
    audit(id, type, userid, group_id, dynamic_id, dynamic_type)
  });

  // 審核操作
  function audit(id, type, userid, group_id, dynamic_id, dynamic_type) {
    $.post("{{ route('audit.index') }}/" + id, {
      id: id,
      type: type,
      userid: userid,
      group_id: group_id,
      dynamic_id: dynamic_id,
      dynamic_type: dynamic_type,
      _token: "{{ csrf_token() }}",
      _method: "PUT"
    }, function (data) {
      if (data.result == 0) {
        table.ajax.reload();
        toastr.success("操作成功!");
      }
    });
  }

  $("#is_audit").select2({
    placeholder: "請(qǐng)選擇狀態(tài)",
    minimumResultsForSearch: Infinity
  });

  // 搜索
  $("#searchBtn").click(function(){
    table.draw();
  });
/script>
 
script type="text/javascript">
  $dataTable = $("#dataTable");
  var table = $dataTable.DataTable({
    "processing": true,
    "serverSide": true,
    "pageLength": 25,
    "lengthMenu": [10, 25, 50, 75, 100, 200],
    "ajax": {
      "url": "{{ route('audit.getList') }}",
      "data": function (data) {
        data.dynamic_type = "{{ Request::get('dynamic_type', 1) }}";
        data.group_id = $("#group_id").val();
        data.dynamic_id = $("#dynamic_id").val();
        data.userid = $("#userid").val();
        data.is_audit = $("#is_audit").val();
        data.t = "{{ time() }}";
      }
    },
    "columns": [
      {"data": "id"},
      {"data": "userid"},
      {"data": "group_id"},
      {"data": "dynamic_type"},
      {"data": "dynamic_id"},
      {"data": "content"},
      {"data": "images"},
      {"data": "money"},
      {"data": "is_audit"},
      {"data": "audited_at"}
    ],
    "columnDefs": [
      {
        "render": function (data, type, row) {
          if (data == 1) {
            return "活動(dòng)";
          } else if (data == 2) {
            return "動(dòng)態(tài)";
          }
        },
        "targets": 3
      },
      {
        "render": function (data, type, row) {
          html = "";
          $.each(data, function (k, v) {
            html += "a href='" + v.origin + "' target='_blank'>img src='" + v.origin + "' width='160' style='margin-bottom: 2px;'>";
          });
          return html;
        },
        "targets": 6
      },
      {
        "render": function (data, type, row) {
          if (data == 0) {
            return "未審核";
          } else if (data == 1) {
            return "審核通過";
          } else if (data == -1) {
            return "審核不通過";
          }
        },
        "targets": 8
      },
      {
        "render": function (data, type, row) {
          if (row.is_audit == 0) {
            return "a class='btn btn-primary audit' data-type = 1>通過/a> a class='btn btn-danger audit' data-type = 2>不通過/a>";
          }
          return "-";
        },
        "targets": 10
      }
    ],
    "createdRow": function (row, data, index) {
      $('td', row).eq(4).attr('style', 'word-break:break-all');
      $('td', row).eq(2).attr('style', 'word-break:break-all');
      $('td', row).eq(5).attr('style', 'word-break:break-all');
    },
    "language": {
      processing: "數(shù)據(jù)加載中...",
      info: "顯示第 _START_ 至 _END_ 條,共 _TOTAL_ 條記錄",
      infoEmpty: "暫無數(shù)據(jù)",
      lengthMenu: "顯示 _MENU_ 條記錄",
      paginate: {
        first: "首頁",
        previous: "上一頁",
        next: "下一頁",
        last: "最后一頁"
      }
    }
  });
 
  $dataTable.find('tbody').on('click', '.audit', function () {
    var data = table.row($(this).parents('tr')).data();
    var id = data.id;
    var userid = data.userid;
    var group_id = data.group_id;
    var dynamic_id = data.dynamic_id;
    var dynamic_type = data.dynamic_type;
    var type = $(this).data('type');
    audit(id, type, userid, group_id, dynamic_id, dynamic_type)
  });
 
  // 審核操作
  function audit(id, type, userid, group_id, dynamic_id, dynamic_type) {
    $.post("{{ route('audit.index') }}/" + id, {
      id: id,
      type: type,
      userid: userid,
      group_id: group_id,
      dynamic_id: dynamic_id,
      dynamic_type: dynamic_type,
      _token: "{{ csrf_token() }}",
      _method: "PUT"
    }, function (data) {
      if (data.result == 0) {
        table.ajax.reload();
        toastr.success("操作成功!");
      }
    });
  }
 
  $("#is_audit").select2({
    placeholder: "請(qǐng)選擇狀態(tài)",
    minimumResultsForSearch: Infinity
  });
 
  // 搜索
  $("#searchBtn").click(function(){
    table.draw();
  });
/script>

本文主要記錄給自己看,不做具體的說明了。

參考鏈接

dataTables 官方文檔

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • PHP框架Laravel插件Pagination實(shí)現(xiàn)自定義分頁
  • 推薦幾款用 Sublime Text 開發(fā) Laravel 所用到的插件
  • laravel yajra插件 datatable的使用詳解

標(biāo)簽:巴中 山東 張家口 梅州 林芝 威海 成都 泰州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《在Laravel中使用DataTables插件的方法》,本文關(guān)鍵詞  在,Laravel,中,使用,DataTables,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《在Laravel中使用DataTables插件的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于在Laravel中使用DataTables插件的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    久久久久久一级片| 亚洲欧美日韩久久精品| 国产精品美女久久久久久久久| 久久精品国产亚洲5555| 日韩一区二区不卡| 狠狠色狠狠色合久久伊人| 久久亚洲一区二区三区明星换脸| 精久久久久久久久久久| 久久综合一区二区| 国产精品一区免费视频| 中文字幕第一区二区| av电影一区二区| 亚洲一区在线播放| 欧美一区二区精品| 激情小说欧美图片| 中文字幕在线不卡| 91精品国产91综合久久蜜臀| 国产伦精品一区二区三区免费迷| 国产精品成人免费在线| 91麻豆成人久久精品二区三区| 亚洲国产精品自拍| 精品第一国产综合精品aⅴ| 成人av综合在线| 亚洲成人福利片| 久久九九全国免费| 欧美色图第一页| 韩国在线一区二区| 亚洲天堂福利av| 91精品国产色综合久久久蜜香臀| 国产a区久久久| 日韩电影免费一区| 国产精品无码永久免费888| 欧美高清激情brazzers| 成人h版在线观看| 蜜桃视频在线一区| 亚洲一区二区三区影院| 国产欧美一区二区精品婷婷| 欧美精品成人一区二区三区四区| 成人午夜视频福利| 美腿丝袜亚洲三区| 午夜婷婷国产麻豆精品| 国产精品色呦呦| 欧美岛国在线观看| 欧美日韩国产一区| 99精品视频免费在线观看| 国内精品国产三级国产a久久| 亚洲成a人在线观看| 中国色在线观看另类| 日韩三级视频在线看| 99热精品国产| 国产精品一区二区不卡| 美国十次综合导航| 亚洲6080在线| 亚洲一区二区黄色| 亚洲精品一二三四区| 亚洲精品日韩专区silk| 亚洲人成在线播放网站岛国| 日韩理论电影院| 综合av第一页| 亚洲欧美乱综合| 亚洲人一二三区| 一区二区三区自拍| 一区二区三区不卡在线观看| 国产日韩精品视频一区| 国产欧美久久久精品影院| 国产欧美一区二区精品性色超碰| 久久久久久久久久久久电影| 国产亚洲va综合人人澡精品| 337p粉嫩大胆噜噜噜噜噜91av| 精品成人一区二区三区四区| 日本一区二区三区国色天香| 国产精品电影一区二区| 亚洲免费观看在线视频| 亚洲一区二区在线免费看| 亚洲男人的天堂一区二区| 亚洲成人自拍网| 麻豆一区二区三| 国产成人av在线影院| 成人app软件下载大全免费| 91婷婷韩国欧美一区二区| 在线看日韩精品电影| 欧美日韩高清一区| 日韩欧美一二三| 国产精品卡一卡二卡三| 亚洲欧美日韩国产手机在线 | 91麻豆精东视频| 欧美日韩一区二区在线观看| 6080yy午夜一二三区久久| 精品国产99国产精品| 国产精品久久99| 日韩国产欧美三级| 成人性生交大合| 欧美伊人精品成人久久综合97| 日韩女优视频免费观看| 国产精品初高中害羞小美女文| 亚洲成人免费在线| 国产成人午夜电影网| 欧美老肥妇做.爰bbww| 久久久精品蜜桃| 亚洲第一精品在线| 成人手机在线视频| 欧美日韩精品一区二区天天拍小说 | 日韩欧美国产小视频| 亚洲国产成人私人影院tom| 怡红院av一区二区三区| 久久99精品一区二区三区三区| 国产成人综合网| 日韩视频在线你懂得| 一区二区激情视频| 成人午夜精品在线| 日韩欧美高清一区| 一区二区三区成人| 成人午夜又粗又硬又大| 日韩精品一区二区三区swag| 亚洲国产精品尤物yw在线观看| 成人丝袜视频网| 欧美mv日韩mv| 日韩**一区毛片| 欧美三级三级三级爽爽爽| 国产精品毛片久久久久久| 日韩黄色小视频| 欧美视频在线一区| 亚洲综合一区二区精品导航| jvid福利写真一区二区三区| 中文字幕电影一区| 成人性视频网站| 久久亚洲捆绑美女| 韩国v欧美v日本v亚洲v| 欧美一卡在线观看| 日本色综合中文字幕| 欧美日韩激情一区二区三区| 亚洲美女视频在线| 成人av在线影院| 国产亚洲欧美色| 国产精品996| 国产精品免费aⅴ片在线观看| 国产成人精品免费| 中文字幕第一区| 成人动漫视频在线| 亚洲日本护士毛茸茸| 欧美主播一区二区三区| 亚洲一区二区美女| 欧美一区二区三区婷婷月色| 麻豆免费看一区二区三区| 91精品国产欧美一区二区成人| 日日夜夜免费精品视频| 91精品国产丝袜白色高跟鞋| 蜜桃精品视频在线观看| 欧美精品一区二区三区一线天视频| 国产呦精品一区二区三区网站| 国产欧美日韩一区二区三区在线观看| 国产成人精品免费| 亚洲制服欧美中文字幕中文字幕| 欧美性色欧美a在线播放| 亚洲黄色性网站| 日韩视频在线你懂得| 国产99一区视频免费| 亚洲女与黑人做爰| 日韩写真欧美这视频| 高清av一区二区| 一个色在线综合| 日韩免费高清av| 99久久精品99国产精品| 视频一区免费在线观看| 国产欧美一区二区三区网站| 色综合久久中文综合久久97| 免费在线观看一区二区三区| 中文字幕乱码一区二区免费| 欧美日韩色一区| 国产福利一区在线观看| 亚洲成av人**亚洲成av**| 久久久久久久久久久电影| 欧美日韩精品一区二区三区四区| 国产白丝网站精品污在线入口| 午夜成人免费视频| 亚洲国产成人午夜在线一区| 91精品国产全国免费观看| 日本黄色一区二区| 国产又粗又猛又爽又黄91精品| 亚洲成人自拍偷拍| 日韩一区在线播放| 国产亚洲午夜高清国产拍精品| 欧美天堂亚洲电影院在线播放| 成人中文字幕电影| 另类综合日韩欧美亚洲| 亚洲在线视频一区| 国产精品久久久久一区 | 日韩av二区在线播放| 亚洲精品免费电影| 日韩欧美www| 欧美日韩中文国产| 91丨porny丨最新| 国产黄色精品视频| 久久99深爱久久99精品| 日韩电影一区二区三区| 香蕉久久夜色精品国产使用方法| 亚洲美女视频在线观看| 中文字幕一区二区不卡 | 久久精品欧美日韩精品| 日韩免费性生活视频播放|