📌  相关文章
📜  在 laravel eloquent 中使用 with() 函数获取特定列 - PHP (1)

📅  最后修改于: 2023-12-03 15:07:42.381000             🧑  作者: Mango

在 Laravel Eloquent 中使用 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 关联模型中的 nameemail 列。

值得一提的是,如果我们正在获取的列被用作关联关系的默认查找列,则可以省略 select 命令。例如:

// 获取指定模型的 users 关联模型的默认列
$users = Post::with('users')->get();
结论

使用 with() 函数获取特定列可以显著提高 Laravel 应用程序的性能。通过仅检索我们需要的列,我们可以减少查询所需的内存和数据库负载。此外,with() 函数还可以与其他 Eloquent 函数一起使用,包括 whereorderBy 等等,以优化数据库查询并减少 N+1 问题的出现。