📅  最后修改于: 2023-12-03 15:07:42.381000             🧑  作者: Mango
with()
函数获取特定列在 Laravel Eloquent 中使用 with()
函数可以轻松地预先加载模型的关联关系,以避免在之后的查询中使用“惰性加载”的方法导致 N+1 问题。同时,with()
函数也允许我们只获取模型中的特定列。这对于减少查询所需的内存和数据库负载非常有用。
使用 with()
函数获取特定列的方法很简单。只需将要获取的列名数组作为第二个参数传递给 with()
函数即可。
// 获取指定模型的 users 关联模型的 name 和 email 列
$users = Post::with(['users' => function ($query) {
$query->select('name', 'email');
}])->get();
在上面的例子中,我们获取了 Post
模型的 users
关联模型中的 name
和 email
列。
值得一提的是,如果我们正在获取的列被用作关联关系的默认查找列,则可以省略 select
命令。例如:
// 获取指定模型的 users 关联模型的默认列
$users = Post::with('users')->get();
使用 with()
函数获取特定列可以显著提高 Laravel 应用程序的性能。通过仅检索我们需要的列,我们可以减少查询所需的内存和数据库负载。此外,with()
函数还可以与其他 Eloquent 函数一起使用,包括 where
、orderBy
等等,以优化数据库查询并减少 N+1 问题的出现。