Récupération des enregistrements de modèles associés dans l'ordre avec la commande par relation de Laravel
Dans Laravel, lors de l'accès aux données des modèles associés, il est possible de trier les résultats en utilisant la méthode orderBy. Par exemple, le code suivant récupère tous les commentaires d'un auteur et les affiche dans une liste :
foreach($post->user->comments as $comment) { echo "<li>" . $comment->title . " (" . $comment->post->id . ")</li>"; }
Cependant, la liste peut ne pas être classée dans l'ordre souhaité. Pour trier les résultats en fonction de l'ID de la publication, vous pouvez étendre la relation avec des fonctions de requête :
public function comments() { return $this->hasMany('Comment')->orderBy('column'); }
Le paramètre 'column' spécifie la colonne selon laquelle trier.
Pour plus de flexibilité , vous pouvez autoriser l'utilisateur à spécifier la colonne orderBy via une méthode de contrôleur :
public function comments() { return $this->hasMany('Comment'); } class Controller { public function index() { $column = Input::get('orderBy', 'defaultColumn'); $comments = User::find(1)->comments()->orderBy($column)->get(); // use $comments in the template } }
Cette méthode fournit un classement dynamique des enregistrements de modèle associés en fonction de la saisie de l'utilisateur, permettant une plus grande flexibilité dans l'affichage des résultats.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!