Laravel Eloquent ORM通过模型类操作数据库,支持all()、find()、where()等方法进行数据查询,可链式调用条件、排序与分页,结合作用域复用逻辑,并通过关联关系实现一对一、一对多等查询,使用with预加载优化性能。

Laravel 的 Eloquent ORM 提供了简洁且强大的方式来操作数据库。它将数据库表映射为模型类,让你可以用面向对象的方式进行查询和数据操作。以下是常用 Eloquent 查询方法的使用说明,帮助你快速上手。
Eloquent 模型默认继承自 Illuminate\Database\Eloquent\Model,支持多种链式调用的查询构造器方法。
// 获取所有用户
$users = User::all();
// 查找 ID 为 1 的用户
$user = User::find(1);
// 获取状态为启用的用户数量
$count = User::where('status', 1)->count();
你可以使用 where 方法添加查询条件,并通过链式调用组合多个条件。
$users = User::where('status', 1)
->whereIn('type', [1, 2])
->whereNotNull('email_verified_at')
->orderBy('created_at', 'desc')
->skip(0)->take(10)
->get();
通过定义本地作用域,可以封装常用的查询条件,提升代码可读性和复用性。
在模型中定义以 scope 开头的方法:
class User extends Model
{
public function scopeActive($query)
{
return $query->where('status', 1);
}
public function scopeType($query, $type)
{
return $query->where('type', $type);
}
}
调用作用域:
$activeUsers = User::active()->get(); $adminUsers = User::active()->type(2)->get();
Eloquent 支持定义模型之间的关系,如一对一、一对多、多对多等。
定义关系后,可以直接访问关联数据:
// 在 User 模型中定义
public function posts()
{
return $this->hasMany(Post::class);
}
// 使用
$user = User::find(1);
$posts = $user->posts; // 获取该用户所有文章
也可以用 with 进行预加载,避免 N+1 查询问题:
$users = User::with('posts')->get();
以上就是laravel如何使用Eloquent ORM进行数据库查询_Laravel Eloquent ORM数据库查询方法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号