Laravel 如何限制关联表的查询字段

在使用 Laravel 的关联查询中,我们经常使用 with 方法来避免 1+N 查询,但是 with 会将目标关联的所有字段全部查询出来,对于有强迫症的PHPer来说,当然是不允许发生的。

第一种方法:在模型里就写好,固定死

方便简洁,但是不能针对不同的需求去关联不同的字段,一旦在模型关联中写死,所有的关联的字段都是一样的

在 Blog 模型里,写关联函数,一对多(反向)

public function user()
{
        return $this->belongsTo(User::class)->select(['id', 'name']);
}

第二种方法:可以在写查询的过程中指定需要关联的字段

这种方法比较自由,是在各自的逻辑控制器里实现,比较自由

$blogs = Blog::orderBy('id', 'DESC')
            ->select(['id','content', 'user_id'])
            ->with(['user' => function ($query) {
                $query->select('id', 'name');
            }])->paginate(10);

相关文章

感觉本篇文章不错,对你有收获?

¥我要小额赞助,鼓励作者写出更好的教程
80 160 120

作者:

  • 出处: https://www.mi360.cn/articles/243
  • 本文版权归作者,欢迎转载,但未经作者同意必须保留 此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

评论区

最新评论

扫码关注