【问题标题】:add auto number in server side data table laravel 5在服务器端数据表 laravel 5 中添加自动编号
【发布时间】:2018-12-30 10:30:19
【问题描述】:

我想为我的表添加自动编号,例如 1、2、3,直到记录结束。

我使用 ($no + 1) ,我通常使用它不起作用。

加载数据工作正常,但我不知道如何添加自动编号 请帮帮我,

这个给我的控制器

public function getUser(Request $request)
{

  $columns = array(
      0 => 'auto_num',
      1 => 'add_time',
      2 => 'id'
    );

    $totalData = DataTes::count();
    $limit = $request->input('length');
    $start = $request->input('start');
    $order = $columns[$request->input('order.0.column')];
    $dir = $request->input('order.0.dir');

    if(empty($request->input('search.value'))){
        $posts = DataTes::offset($start)
                ->limit($limit)
                ->orderBy($order,$dir)
                ->get();
        $totalFiltered = DataTes::count();
    }else{
        $search = $request->input('search.value');
        $posts = DataTes::where('auto_num', 'like', "%{$search}%")
                        ->orWhere('add_time','like',"%{$search}%")
          ->orWhere('id','like',"%{$search}%")
                        ->offset($start)
                        ->limit($limit)
                        ->orderBy($order, $dir)
                        ->get();
        $totalFiltered = DataTes::where('auto_num', 'like', "%{$search}%")
                        ->orWhere('add_time','like',"%{$search}%")
          ->orWhere('id','like',"%{$search}%")
                        ->count();
    }


    $data = array();

    if($posts){
        $counter = 1;
        foreach($posts as $r){
            $nestedData['auto_num'] = $r->auto_num;
            $nestedData['add_time'] = $r->add_time;
            $nestedData['id'] = $r->id;
            $nestedData['no'] = $counter;
            $data[] = $nestedData;
            $counter++;
        }
    }

    $json_data = array(
        "draw"          => intval($request->input('draw')),
        "recordsTotal"  => intval($totalData),
        "recordsFiltered" => intval($totalFiltered),
        "data"          => $data
    );

    echo json_encode($json_data);


}

这是为我的 js 准备的

    $('#example1').DataTable( {
    "ordering": true,
    'autoWidth': true,

            "processing": true,
            "serverSide": true,
            "ajax": {
                "url":"<?= route('dataProcessing') ?>",
                "dataType":"json",
                "type":"POST",
                "data":{"_token":"<?= csrf_token() ?>"}
            },
            "columns":[
      {"data": "auto_num"},
      {"data": "add_time"},
      {"data": "id"},
      {"data": "no"}
            ]
        } );

希望你能明白我的意思 抱歉我的英语不好,我使用 laravel v5.6

【问题讨论】:

  • 了解递增变量
  • @hungrykoala 我现在,但是我如何实现到服务器端数据表,我总是得到错误
  • $nestedData['auto_num'] = $r-&gt;auto_num; 这是您要自动递增的那个吗?
  • 不,在我的代码中没有任何 auto_num,我不想从数据库中自动编号,但只是显示以查看我有多少数据,我只是显示我的代码,如果知道请添加我想要什么@hungrykoala
  • 我的意思是你想要自动递增的代码行?由于该行在您的代码中。

标签: php laravel datatable serverside-javascript


【解决方案1】:

你可以这样做:

if($posts){
    $counter = 1;
    foreach($posts as $r){
       $nestedData['auto_num'] = $r->auto_num;
       $nestedData['add_time'] = $r->add_time;
       $nestedData['id'] = $r->id;
       $nestedData['no'] = $counter;
       $data[] = $nestedData;
       $counter++;
   }
}

  {"data": "auto_num"},
  {"data": "add_time"},
  {"data": "id"},
  {"data": "no"}

不要忘记在表格标题中添加“否”。

【讨论】:

  • 仍然出错,我按照你说的更新了我的问题,我在 mw Project 中尝试仍然出错DataTables warning: table id=example1 - Ajax error. For more information about this error, please see http://datatables.net/tn/7
  • 您是否也更新了您的表格?您需要在您的问题中为您的“否”发布您的 html 的新列
  • yupz,但数据仍然没有出来@hungrykoala
  • 我还有一个问题,以前的问题我可以解决,新的问题是,只有1-10,如果我旁边的页面不是继续到11-20而是重复到1-10跨度>
  • 这很奇怪。您可以尝试执行此操作echo json_encode($json_data); die; 并查看网络日志以查看您的 JSON 值是否符合预期?
猜你喜欢
  • 2015-09-09
  • 2014-04-13
  • 1970-01-01
  • 2016-04-23
  • 2015-04-16
  • 1970-01-01
  • 1970-01-01
  • 2016-10-14
  • 2019-09-02
相关资源
最近更新 更多