2016-06-23 8 views
1

"と"雄弁で使用するときに特定の列のみを選択する方法はありますか?"と"雄弁に特定の列を選択する方法

私の問題は、非常に長いアカウントリストを取得しており、「with」という関係を使用してウェブサイトを取得する必要がありますが、「ウェブサイト」オブジェクトが大きく、要求が非常に遅くなります。

私が使用してみました:

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

もが:

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

そして、彼らの両方が動作しませんでした。

私はドキュメントの中でこれについての回答を見ませんでした。だから誰かが私とそれを分かち合うかどうか本当に感謝する方法があれば。また、同じ結果を与えることができる "with"の代替案がある場合は、それも素晴らしいでしょう。ありがとう。

答えて

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

はあなたの関係に列を定義してください:

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

クラスと関係が唯一の目的を実証するために、あなたの関係上、この->select(['account_id','url'])を追加しようとすることに注意してください。