📅  最后修改于: 2023-12-03 15:02:37.613000             🧑  作者: Mango
在开发中,检索和聚合数据是非常常见的需求。Laravel 框架为我们提供了方便的检索和聚合数据的方法。
Laravel 中的 DB
类提供了查询构造器来进行数据库的检索操作。以下是一个简单的例子:
$results = DB::table('users')
->select('name', 'email')
->where('active', true)
->orderBy('last_login', 'desc')
->get();
以上代码将从 users
表中检索出所有 active
字段为 true
的用户,并按照 last_login
字段进行倒序排列。
Eloquent 是 Laravel 中的 ORM(对象关系映射),提供了简洁的方法来对数据库进行操作。使用 Eloquent 进行数据检索的方法与使用查询构造器非常相似。以下是一个简单的例子:
$users = App\Models\User::where('active', true)
->orderBy('last_login', 'desc')
->get();
以上代码将从 users
表中检索出所有 active
字段为 true
的用户,并按照 last_login
字段进行倒序排列。
在聚合数据的时候,我们通常需要使用一些聚合函数,比如 SUM
、AVG
、COUNT
等等。Laravel 也为此提供了便捷的方法。
使用 DB 类的 selectRaw
方法可以使我们在检索数据的同时进行聚合操作。以下是一个简单的例子:
$total = DB::table('orders')
->selectRaw('SUM(total_price) as total')
->where('status', 'completed')
->first()
->total;
以上代码将计算出所有 status
字段为 completed
的订单的总价,并将结果存储在 total
字段中。
使用 Eloquent 进行聚合操作也非常简单。我们可以使用 count
、avg
、sum
等方法进行聚合操作。以下是一个简单的例子:
$total = App\Models\Order::where('status', 'completed')
->sum('total_price');
以上代码将计算出所有 status
字段为 completed
的订单的总价。