如何在 Laravel Eloquent 中对相关模型的结果进行排序?

laravelphpserver side programming更新于 2025/4/30 0:52:17

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。正在使用的表是 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

使用 name 的 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/>"; } } }

输出

上述代码的输出是 −


相关文章