J'ai une grande et difficile requête SQL. Ça fonctionne bien pour moi. Et j'ai le code suivant dans le contrôleur: donc, la méthode Mais comme vous pouvez le constater, j'essaie d'adopter le résultat sur une vue. Et, bien sûr, j'aimerais appeler getreport code> me donne le résultat de dB :: Select (' $ applications-> liens () code> dans la vue, comme pour éloquent code> collection. Quel est un moyen approprié et plus rapide de le faire? p> p>
3 Réponses :
Toutefois, La méthode de Forpage renvoie une nouvelle collection contenant les éléments qui seraient présents sur un numéro de page donné. La méthode accepte le numéro de page comme premier argument et le nombre d'éléments à afficher par page comme deuxième argument: p>
blockQquote> Réponse compliquée forte>: Construisez vous-même une instance de paginateur: p> paginate () code> méthode: paginate () code> fonctionne Seulement sur les collections et que vous avez une gamme d'objets, vous devez d'abord la transformer en une collection en utilisant le Forpage () code> Méthode: P>
$perPage = 10;
$page = $request->input("page", 1);
$skip = $page * $perPage;
if($take < 1) { $take = 1; }
if($skip < 0) { $skip = 0; }
$basicQuery = DB::select(DB::raw("<here is the big diffcult SQL query>"));
$totalCount = $basicQuery->count();
$results = $basicQuery
->take($perPage)
->skip($skip)
->get();
$paginator = new \Illuminate\Pagination\LengthAwarePaginator($results, $totalCount, $take, $page);
return $paginator;
Désolé, mais la réponse simple me donne appel à une fonction de membre paginate () sur tableau code>
Vous devez convertir votre tableau en une collection. Vous pouvez le faire en utilisant la méthode de Forpage () de Laravel () laravel.com/docs/6. X / Collections # Méthode-Forpage J'ai mis à jour la réponse. Vous pouvez également le faire en utilisant simplement collect (), puis paginate ().
Vous pouvez également le faire en utilisant simplement collect (), puis paginate () code> - ne fonctionne pas. Laravel me dit Méthode Illuminate \ Support \ Collection :: Paginate n'existe pas. Code> À propos de Forpage code>. Aurai-je $ applications-> liens () code> méthode?
SO basé sur la documentation Si votre https://laravel.com/docs/master/pagination # Paginant-Query-Builder-Résultats P>
blockQuote> $ Applications CODE> renvoie un résultat du constructeur de requêtes, alors appendez simplement -> paginate (10); code>.
Malheureusement, il ne fonctionnera pas (( getReport code> Résultat des retours du dB :: Select (..) code> et c'est un tableau. Cela signifie que je vais avoir appelera non défini Méthode Paginate sur une array code> Erreur.
Pour afficher la pagination à la table, vous devez appeler le Sélectionnez et ensuite la méthode de pagination. p>
dans le contrôleur: p> en vue: p> $test->links();