首頁 > 後端開發 > php教程 > 如何在 Laravel 排序 Eloquent 關係?

如何在 Laravel 排序 Eloquent 關係?

DDD
發布: 2024-11-24 05:02:09
原創
536 人瀏覽過

How Can I Order Eloquent Relationships in Laravel?

Laravel:使用 orderBy 對關係進行排序

在 Laravel 中處理關係時,以特定方式對結果進行排序可能很有用。例如,您可能想要按時間順序顯示與貼文相關的評論。

考慮以下循環,它會迭代特定帖子的作者發布的所有評論:

foreach($post->user->comments as $comment)
{
    echo "<li>" . $comment->title . " (" . $comment->post->id . ")</li>";
}
登入後複製

此循環可能會產生如下輸出:

I love this post (3)
This is a comment (5)
This is the second Comment (3)
登入後複製

要按post_id 對清單進行排序,您可以將評論關係擴展為orderBy函數:

public function comments()
{
    return $this->hasMany('Comment')->orderBy('column');
}
登入後複製

現在,當您循環瀏覽評論時,它們將以所需的順序顯示:

This is the second Comment (3)
I love this post (3)
This is a comment (5)
登入後複製

或者,您可以使用更靈活的方法orderBy 函數作為輸入,類似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
    }
}
登入後複製

透過傳遞orderBy列作為輸入,您可以根據使用者輸入動態對評論進行排序。請記住出於安全目的實施適當的輸入檢查。

以上是如何在 Laravel 排序 Eloquent 關係?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板