如何使用 eloquent "with" select 特定列

How to select specific columns with eloquent "with"

在将 "with" 与 eloquent 一起使用时,有没有办法只 select 特定的列?

我的问题是我得到了很长的帐户列表,我还需要使用关系 "with" 获取他们的网站,但是 "websites" 对象很大,它发出了请求很慢。

我尝试使用:

$accounts = $accounts->with('websites')->select(['account_id','url']);

还有:

$accounts = $accounts->with('websites', function($query) {
                $query->select(['account_id','url']);
            });

而且他们都没有用。

我在他们的文档中没有看到这个问题的答案,所以如果有人愿意与我分享,我将不胜感激。此外,如果 "with" 有一个替代方案可以提供相同的结果,那也很好。谢谢。

尝试定义关系中的列:

class Account
{
    public function websites()
    {
        return $this->hasMany('App\Website')->select(['account_id','url']);
    }
}

请注意 class 和关系仅用于演示目的,请尝试在您的关系中添加此 ->select(['account_id','url'])

$accounts = $accounts->with([
    'websites'  => function($query) {
        $query->select(['account_id','url']);
    }
]);