在Laravel中使用关系选择所需字段


Selecting required fields using relations in Laravel

我有一个模型Meetings:

public function meeting_comments(){
        return $this->hasMany('App'MeetingsComments', 'meeting_id', 'id');
    }
    public function meeting_users() {
        return $this->hasMany('App'UserMeetingDetails', 'meeting_id', 'id');
    }

控制器是这样的:

$res = Meetings::with('meeting_comments', 'meeting_users')
                        ->select('')->get()->toArray();

我只需要meeting_comments中的commentsmeeting_users中的user_id。我把select只从meeting_commentsmeeting_users获得所需的字段??

您可以通过with调用中的闭包来实现:

$res = Meetings::with(['meeting_comments' => function($query) {
        $query->select('comments', 'meeting_id');
    }, 'meeting_users' => function($query) {
        $query->select('user_id', 'meeting_id');
    }])
    ->get()->toArray();

我从记忆中取出这个,所以语法可能有点不正确,但它应该工作。:)