如何在 Laravel Eloquent 中排序關聯模型的結果?
Laravel Eloquent 帶有 **orderBy()** 方法,可用於對模型的結果進行排序。我們將使用如下所示的 Users 表 -

讓我們建立一個名為 **user_roles** 的新表,其中包含以下資料 -

示例 1
以下示例展示瞭如何使用 **orderBy** 對結果進行排序。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; use Illuminate\Support\Str; //use Illuminate\Support\Facades\DB; class UserController extends Controller{ public function index() { $users = User::orderBy('name', 'ASC')->take(10)->get(); foreach ($users as $user) { echo $user->name."<br/>"; } } }
在上面的示例中,使用的查詢如下所示 -
SELECT name from users order by name ASC limit 10;
MySQL 中的輸出如下所示 -

輸出
在 Laravel 中瀏覽器中檢視輸出時 -

示例 2
在本例中,我們將瞭解如何透過連線兩個表來使用 order by。使用的表是 **users** 和 **user_roles** 表。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; class UserController extends Controller{ public function index() { $users = User::join('user_roles', 'users.id', '=', 'user_roles.user_id') ->orderBy('users.name', 'ASC') ->select('users.*') ->paginate(10); foreach ($users as $user) { echo $user->name."<br/>"; } } }
輸出
上述程式碼的輸出如下所示 -

上述示例的查詢為 -
SELECT u.* From users u INNER JOIN user_roles ur ON u.id = ur.user_id ORDER BY u.name ASC;
MySQL 中的輸出為 -

示例 3
另一個使用 **orderBy** 以降序獲取記錄的示例如下所示 -
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; use Illuminate\Support\Str; //use Illuminate\Support\Facades\DB; class UserController extends Controller{ public function index() { $users = User::orderBy('id', 'desc')->select('users.*') ->take(10)->get(); foreach ($users as $user) { echo $user->name."<br/>"; } } }
輸出
上述程式碼的輸出為 -

示例 4
使用 orderBy 對名稱進行排序以降序獲取記錄
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; use Illuminate\Support\Str; //use Illuminate\Support\Facades\DB; class UserController extends Controller{ public function index() { $users = User::orderBy('name', 'desc')->select('users.*') ->take(10)->get(); foreach ($users as $user) { echo $user->name."<br/>"; } } }
輸出
上述程式碼的輸出為 -

廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP