Maison > développement back-end > tutoriel php > Comment puis-je commander des relations éloquentes dans Laravel ?

Comment puis-je commander des relations éloquentes dans Laravel ?

DDD
Libérer: 2024-11-24 05:02:09
original
563 Les gens l'ont consulté

How Can I Order Eloquent Relationships in Laravel?

Laravel : Ordre des relations avec orderBy

Lorsque vous travaillez avec des relations dans Laravel, il peut être utile d'ordonner les résultats d'une manière particulière. Par exemple, vous souhaiterez peut-être afficher les commentaires associés à une publication par ordre chronologique.

Considérez la boucle suivante, qui parcourt tous les commentaires publiés par l'auteur d'une publication spécifique :

foreach($post->user->comments as $comment)
{
    echo "<li>" . $comment->title . " (" . $comment->post->id . ")</li>";
}
Copier après la connexion

Cette boucle peut produire une sortie telle que :

I love this post (3)
This is a comment (5)
This is the second Comment (3)
Copier après la connexion

Pour trier la liste par post_id, vous pouvez étendre la relation des commentaires avec orderBy fonction :

public function comments()
{
    return $this->hasMany('Comment')->orderBy('column');
}
Copier après la connexion

Maintenant, lorsque vous parcourez les commentaires, ils seront affichés dans l'ordre souhaité :

This is the second Comment (3)
I love this post (3)
This is a comment (5)
Copier après la connexion

Vous pouvez également utiliser la méthode plus flexible d'utilisation du Fonction orderBy en entrée, similaire à l'exemple de vérification d'entrée Input::get() :

class User
{
    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

En passant la colonne orderBy en entrée, vous pouvez ordonner dynamiquement les commentaires en fonction des entrées de l'utilisateur. N'oubliez pas de mettre en œuvre une vérification appropriée des entrées pour des raisons de sécurité.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal