Стремитесь загрузить первый элемент из нескольких значений из связанной таблицы в laravel 5.4 - PullRequest
0 голосов
/ 20 мая 2018

У меня есть две таблицы «покупки» и «account_purchase_history».Покупка имеет много истории аккаунтов.Поэтому мне нужно получить все покупки с новейшей историей.Что я сделал до сих пор

 $purchases = Purchases::with(['accounts_purchase_historie' => function($query){
            return $query->orderBy('id','DESC')->first();
        }])->orderBy('id','DESC')->where('status','extended')->get();

Но этот запрос получает только первую историю покупок. Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 21 мая 2018

Вы можете использовать отношение HasOne:

public function latest_history() {
    return $this->hasOne(...)->orderBy('id','DESC');
}

$purchases = Purchases::with('latest_history')
    ->orderBy('id','DESC')
    ->where('status','extended')
    ->get();

foreach($purchases as $purchase) {
    $purchase->latest_history
}

Однако при этом все равно будет извлечено все историй из базы данных в фоновом режиме.

...