L5.6 orderBy()与paginate()结合使用多次返回同一行

时间:2018-02-13 11:52:36

标签: php laravel laravel-5 pagination eloquent

控制器:

public function index($devicetype)
{
    $devices = Device::where('device_type', $devicetype)
    ->orderBy('created_at', 'desc')
    ->paginate(config('myapp.pagination.items_per_page'));
    return view('devices.general.index', compact('devices'));
}

我在blade.php视图中的不同页面上多次获取同一设备。

但是dd(Device::where('device_type', $devicetype)->orderBy('created_at', 'desc')->get());给了我一个没有多个条目的正确集合。

有任何想法/建议吗?

1 个答案:

答案 0 :(得分:1)

这是因为有许多记录具有相同的created_at值。要解决此问题,请按ID添加第二个订单,以删除分页中的重复节目:

$devices = Device::where('device_type', $devicetype)
->orderBy('created_at', 'desc')
->orderBy('id', 'asc')
->paginate(config('myapp.pagination.items_per_page'));
return view('devices.general.index', compact('devices'));