2016-06-23 4 views
1

Есть ли способ выбрать только определенные столбцы при использовании «с» с красноречивым?Как выбрать конкретные столбцы с красноречивым «с»

Моя проблема в том, что я получаю очень длинный список учетных записей, и мне также нужно, чтобы их сайты использовали отношение «с», но объект «веб-сайтов» большой, и он делает запрос очень медленным.

Я попытался с помощью:

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

А также:

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

И они оба не работают.

Я не видел ответа на это в своей документации, поэтому, если есть способ, я бы очень признателен, если бы кто-то поделился им со мной. Кроме того, если есть альтернатива для «с», которая может дать тот же результат, она будет отличной. Благодарю.

ответ

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']) на ваших отношениях.