0
votes

Les ressources de paginate ont échoué

J'ai cette ressource: xxx pré>

et ce code dans mon contrôleur: p> xxx pré>

... un autre code P >

    $jobs = $queryJob->paginate($qtyItemsPerPage);
return JobResource::collection($jobs);


3 commentaires

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


3 Réponses :


0
votes

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

5 commentaires

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



0
votes

Selon Documentation , vous devez d'abord obtenir le résultat paginé d'abord et puis transformer en collection de ressources xxx

afin que vous puissiez utiliser, quelque chose comme xxx


7 commentaires

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 , 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 () et Yourmodel :: tous () 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.



0
votes

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.


0 commentaires