在Laravel中使用json和ajax获取分页所需的所有行数和所有行数

在Laravel中使用json和ajax获取分页所需的所有行数和所有行数,json,ajax,laravel,pagination,Json,Ajax,Laravel,Pagination,我想从数据库中获取10行,并对它们进行计数以进行分页。当我不使用ajax时,它可以工作,但是在编码jason并将其发送到视图时存在问题 控制器中的我的代码: $datas = model::take(10)->get(); $dataCount = model::all()->count(); $datas = $datas->put('dataCount', $dataCount); return json_encode($datas); 以及我的代码: .complete

我想从数据库中获取10行,并对它们进行计数以进行分页。当我不使用ajax时,它可以工作,但是在编码jason并将其发送到视图时存在问题

控制器中的我的代码:

$datas = model::take(10)->get();
$dataCount = model::all()->count();
$datas = $datas->put('dataCount', $dataCount);
return json_encode($datas);
以及我的代码:

.complete(function(datas)
{
    data = JSON.parse(datas.responseText);
    data_count = data.dataCount;
    delete data['dataCount'];
    count = data.length;

    for(key=0; key<count; key++)
    {
        //do something
    }
});
当我删除数据['dataCount']时,数据对象将未定义,但当我删除$datas=$datas->put'dataCount',$dataCount时,它可以工作,但我希望使用所有行的计数来创建分页


谢谢

这可能与这本雄辩的系列丛书有关。尝试不将任意数据包括到集合中。试着这样做:

$datas = model::take(10)->get();
$dataCount = model::count();

$resp['data'] = $datas->toArray();
$resp['dataCount'] = $dataCount;

return json_encode($resp);

它将在json属性中返回您的数据数组,在其他属性中返回您的计数。

您是否尝试过摆脱json编码?只需再次返回$DATASE,就像以前一样,当我删除该元素时,它会完全未定义。为什么不使用paginate方法?paginate方法仅用于分页,但我希望使用json和ajax发送分页和主数据。我想显示10条记录,以及所需的页数。但问题是当我将它们合并在一起时。将其放入新变量并在javascript中删除时,它不起作用。当我删除特定项时,它会完全未定义。O抱歉,当我在javascript中删除该项时,它不会未定义,但当我将一个新项放入从controller中的数据库获取的记录中时,它在javascript中没有定义。请注意,model::all->count将从modelTable执行SELECT*,然后计算集合中的结果数。您应该改为执行model::count。这样就可以从modelTable中选择count*,这是一种更有效的获取计数的方法。更新我的答案。谢谢你的提示。