ホームページ > バックエンド開発 > PHPチュートリアル > 「orderBy」を使用してLaravelで関連モデルを注文する方法?

「orderBy」を使用してLaravelで関連モデルを注文する方法?

Mary-Kate Olsen
リリース: 2024-11-29 06:11:10
オリジナル
614 人が閲覧しました

How to Order Related Models in Laravel Using `orderBy`?

Laravel での関係の順序付け

関連モデルのセットを取得する場合、特定の方法でそれらを順序付けすると便利なことがよくあります。 Laravel では、これは orderBy メソッドを使用して実現できます。

Ordering HasMany Relationships

特定の投稿の作成者によって投稿されたすべてのコメントをループする次のシナリオを考えてみましょう。

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)
ログイン後にコピー

Toコメントを投稿 ID で並べ替え、User モデルの hasMany 関係を拡張します。

public function comments()
{
    return $this->hasMany('Comment')->orderBy('column');
}
ログイン後にコピー

列を並べ替える列の名前に置き換えます。この場合、id:

public function comments()
{
    return $this->hasMany('Comment')->orderBy('id');
}
ログイン後にコピー

を使用します。これにより、コメントの順序が次のように更新されます:

I love this post (3)
This is the second Comment (3)
This is a comment (5)
ログイン後にコピー

Ordering with Query Parameters

In関係内の順序をハードコーディングするだけでなく、クエリ パラメーターに基づいて順序を指定することもできます。これを行うには、routes.php ファイルでルートを定義します:

Route::get('users/{user}/comments', 'UserController@index');
ログイン後にコピー

次に、UserController で対応するインデックス メソッドを作成します:

public function index($user)
{
    $column = Input::get('orderBy', 'defaultColumn');
    $comments = $user->comments()->orderBy($column)->get();

    // ...
}
ログイン後にコピー

orderBy パラメーターに応じて、コメントは順序付けされます。たとえば、次の URL にアクセスすると、created_at 列でコメントが並べ替えられます:

http://localhost/users/1/comments?orderBy=created_at
ログイン後にコピー

以上が「orderBy」を使用してLaravelで関連モデルを注文する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート