2017-10-02 1 views
0

Comment puis-je utiliser la méthode orderBy avec ce script:Méthode orderBy n'existe pas - Laravel

public function getProposalByUser($userId) 
{ 
    return ProposalModel::where('user_id', '=', $userId)->paginate(4)->orderBy('desc'); 
} 

le script est de sélectionner la proposition où l'utilisateur a. et je veux l'arranger pour que le sommet soit le plus récent. Merci à l'avance, et désolé pour mon mauvais anglais ..

+0

https://laravel.com/docs/5.5/queries#ordering-grouping-limit-and-offset lire sur la façon d'y parvenir. Vous les utilisez dans le mauvais ordre, et il vous manque la 'colonne' que vous essayez de commander par ... –

Répondre

0

Essayez ceci:

return ProposalModel::where('user_id', '=', $userId)->orderBy('user_id', 'desc')->paginate(4); 
+0

aahhh .. son travail .. j'essaie votre script, et je mise à jour comme ceci: Renvoie ProposalModel :: where ('user_id', '=', $ userId) -> orderBy ('id', 'desc') -> paginate (4); –

+0

@ José vous devriez mettre à jour votre réponse en expliquant ce qui ne va pas. timlewis a eu un bon commentaire sur la question. –

2

Il semble que le principal problème est que vous avez utilisé les méthodes dans le mauvais ordre.

public function getProposalByUser($userId) 
{ 
    return ProposalModel::where('user_id', '=', $userId)->orderBy('desc')->paginate(4); 
} 

paginate retourne réellement les résultats de la requête dans une collection et la collection ne dispose pas d'une méthode orderBy, donc vous ne pouvez pas enchaîner comme vous pouvez avec les autres méthodes de constructeur de requête.

Deuxièmement, il semble que la méthode orderBy nécessite un autre argument, à moins que votre entité n'ait réellement une propriété appelée 'desc'.

0

Essayez ceci:

return ProposalModel::where('user_id', '=', $userId)->orderBy('created_date', 'desc')->paginate(4); 
+0

A faire ou pas, il n'y a pas de "try". Une *** bonne réponse *** aura toujours une explication de ce qui a été fait et pourquoi cela a été fait d'une telle manière, non seulement pour le PO mais pour les futurs visiteurs de SO. –