laravel关联模型怎么获取特定的字段?

laravel关联默认是查找所有字段,怎么设定只查找特定的某个字段呢?

比如说 Post 和 Comment 是一对多的关系,Post 有这样的定义:

 public function comments()
    {
        return $this->hasMany(\App\Comment::class);
    }

试试下面这样:

$comments = $post->comments()->get(['id','body']);

或者你直接使用 with :

Post::with(['comments' => function ($query) {
                    $query->select('body', 'id');
                }]);

注意这里面的 comments 就是你在 Post 中定义的方法。

JellyBool

比如说 Post 和 Comment 是一对多的关系,Post 有这样的定义:

 public function comments()
    {
        return $this->hasMany(\App\Comment::class);
    }

试试下面这样:

$comments = $post->comments()->get(['id','body']);

或者你直接使用 with :

Post::with(['comments' => function ($query) {
                    $query->select('body', 'id');
                }]);

注意这里面的 comments 就是你在 Post 中定义的方法。

liushaoxing 回复 JellyBool
 public function comments()
    {
        return $this->hasMany(\App\Comment::class)->select(['id','body']);
    }

我试了这个方法也可以

JellyBool 回复 liushaoxing

恩,可以的。

后面的贴子和评论能否用 markdown 稍微排版一下,这样代码就好看很多了。

TonyWang 回复 JellyBool

测试下回复功能哈

TonyWang 回复 liushaoxing

赞@liushaoxing

JellyBool 回复 TonyWang

现在 @ 功能不能回复了。(没有消息通知)

TonyWang 回复 JellyBool

我是想试试多级评论?最近也想做个类似的,有些还没想清楚

JellyBool 回复 TonyWang

我明天录几个视频说一下这个吧,其实就是递归。

TonyWang 回复 JellyBool

好。坐等。给你赞助一顿午餐!

liushaoxing 回复 JellyBool

在哪一个栏目下

JellyBool 回复 liushaoxing

打算新开一个系列,可以把整个过程说得完整一点

Nixus 回复 JellyBool

老师,这个方法对hasMany有效,对belongTo无效,对吧?我现在是belongTo的联表查询需要,有没有办法实现?

JellyBool 回复 Nixus

都是一样有效的吧。。。

Nixus 回复 JellyBool

不行的,如果是belongsTo的话,拿到的是null
paginate返回的分页数据中,可以过滤掉一些不需要的吗?
比如first_page_url,在API这种完全不需要,有办法删掉吗?
搜一下,全是自定义分页模板的