2 votes

L5.6 orderBy() en combinaison avec paginate() renvoie la même ligne plusieurs fois

Contrôleur :

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'));
}

Je reçois le même dispositif plusieurs fois sur différentes pages dans ma vue blade.php.

Mais dd(Device::where('device_type', $devicetype)->orderBy('created_at', 'desc')->get()); me donne une collection correcte sans entrées multiples.

Des idées/suggestions ?

1voto

Sapnesh Naik Points 4878

C'est parce qu'il y a beaucoup d'enregistrements avec la même created_at valeur. Pour résoudre ce problème, ajoutez une deuxième commande par id pour supprimer l'affichage dupliqué dans la pagination :

$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'));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X