J'ai cette ressource: et ce code dans mon contrôleur: p> ... un autre code P > $jobs = $queryJob->paginate($qtyItemsPerPage);
return JobResource::collection($jobs);
3 Réponses :
Les classes de résultat du paginateur Laravel mettent en œuvre la Illuminate \ Contracts \ Support \ JSONABLE INTERFACE CONTRAT ET EXPOSER la méthode Tojson, il est donc très facile de convertir votre pagination Résultats à Json. P>
https://laravel.com/docs/5.4/pagination # Conversion-Resultats-Resultats-To-Json P>
Par conséquent, vous pouvez utiliser, P>
return $queryJob->paginate($qtyItemsPerPage);
Oui ça marche comme ça. Mais je dois utiliser des ressources. La question est donc toujours la même, comment paginer une collection de ressources avec le constructeur de requêtes. Mais peut-être que ce n'est pas possible? (J'ai un doute).
Vous pouvez utiliser Forpage () laravel.com/docs/5.8/collections#method-forpage < / a>
@ Domaine Quelle est votre version de Laravel?
J'utilise laravel 6
Veuillez suivre cette voie laravel.com/docs/6.x/eloquent-resources# pagination
Selon Documentation , vous devez d'abord obtenir le résultat paginé d'abord et puis transformer en collection de ressources afin que vous puissiez utiliser, quelque chose comme p>
C'est exactement ce que j'ai fait mais j'ai toujours la même erreur. Cela fonctionne avec une requête éloquente, mais pas avec le constructeur de requêtes classique. Étrange.
@Dom utilisez-vous GroupBy CODE>, Laravel Don ne supporte pas que, dans la pagination, la deuxième chose est que vous devez créer une collection de modèles éloquents pour la convertir en collection de ressources API, si vous essayez d'utiliser la requête de la requête, Résultat, cela ne fonctionnera pas, mieux que vous devriez utiliser la relation au lieu de la requête et les rejoint.
Je n'utilise pas groupby. Je dois donc faire ma requête avec Eloquant et non avec QueryBuilder. Ma question est maintenant comment rejoindre 2 modèles avec Eloquant + Ajoutez quelques conditions à ce sujet. Je vais lire la documentation.
@Dom, vous avez besoin de relation entre les modèles, oui, vous ne pouvez pas utiliser de requête Builder, si vous connaissez Tinker, essayez d'exécuter dB :: Table ("Votre nom-nom ') -> Obtenez () Code > et Yourmodel :: tous () code> et remarquez la différence que vous ne comprendrez le problème.
@Dom se référer laravel.com/docs/master/eloquent-relationships
Oui, j'ai résolu le problème à l'aide d'un constructeur de requêtes traditionnel. Et pas une requête éloquente. Comme cela fonctionne bien maintenant, je n'ai pas trouvé une autre solution. Mais merci de votre assistant. Domestique
@Dom, vous devriez le poster comme une réponse à cette question.
J'ai résolu le problème en utilisant un constructeur de requêtes traditionnel et non une requête éloquente. Comme cela fonctionne bien maintenant, je n'ai pas trouvé une autre solution. P>
Pourquoi passez-vous $ oks dans la ressource professionnelle :: Collection (€ Jobs);
Salut Casper. Si je veux un Json, il est obligatoire de faire comme si je l'ai fait, non? Ou je n'ai pas compris comment utiliser des résines?
Accorde à la documentation: Les classes de résultat du paginateur Laravel mettent en place le contrat d'interface \ JSONABLES \ Support \ JSNABLE et exposent la méthode TOJSON, il est donc très facile de convertir vos résultats de pagination à JSON. Vous pouvez également convertir une instance de paginateur en JSON en le renvoyant simplement à partir d'une conduite ou d'une action de contrôleur laravel.com/docs/5.4/pagination#converting-results-a-json