Максимальная функция и отношения Laravel Query Builder - PullRequest
0 голосов
/ 29 сентября 2018

этот код

$maxsub =  Invoice::with(['userinvoicesubaccount'])->where([['person_id',$id]])->get();

 @foreach($maxsub as $max)
         {{$max->userinvoicesubaccount->subaccount_name}}   </font></div>
 @endforeach

Получите мне все имена субсчетов, связанные с моим списком счетов с предопределенным идентификатором.

Мне нужно получить единственное имя субсчета, связанное с моим спискомсчетов с наибольшей суммой (которые существуют в моей таблице счетов) с предопределенным идентификатором.

Любая помощь?спасибо

Ответы [ 2 ]

0 голосов
/ 29 сентября 2018

Сначала вычислите счет с наибольшей суммой, например, так:

$maxInvoice = Invoice::with('userinvoicesubaccount')->where('person_id',$id)
              ->orderBy('amount', 'desc')->first();

Затем получите соответствующие субсчета для этого счета, вот так:

$maxInvoice->userinvoicesubaccount
0 голосов
/ 29 сентября 2018

Вы можете добавить подзапрос к вашей функции with.

$invoices =  Invoice::with(['userinvoicesubaccount' => function($query) {
    $query->max('amount');  // Max function gives you highest value of a given column
}])
->where([['person_id', $id]])
->get();

 @foreach($invoices as $invoice)
         // You will still need to call first because you will have a collection
         {{$invoice->first()->userinvoicesubaccount->subaccount_name}}   </font></div>
 @endforeach

Взгляните на https://laravel.com/docs/5.7/eloquent-relationships#eager-loading

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...