Comment puis-je commander les enregistrements de modèle associés à l'aide de la relation « orderBy » de Laravel ?

Barbara Streisand
Libérer: 2024-11-20 22:24:13
original
750 Les gens l'ont consulté

How Can I Order Related Model Records Using Laravel's `orderBy` Relationship?

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>";
}
Copier après la connexion

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');
}
Copier après la connexion

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
    }
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal