आप withCount()
का इस्तेमाल कर सकते हैं
संबंधित मॉडल से योग प्राप्त करने के लिए
$result = Customer::select([
'customers.id',
'customers.last_name'
])->withCount([
'customerInvoices as invoice_sum' => function($query) {
$query->select(DB::raw('SUM(total_price)'));
}
])->whereHas('customerInvoices', function(Builder $q) {
$q->where('customer_invoices.status', 1);
})->get();
योग प्राप्त करने का दूसरा तरीका, आप hasOne()
. को परिभाषित कर सकते हैं आपके ग्राहक मॉडल में संबंध जैसे
public function invoice_sum()
{
return $this->hasOne(CustomerInvoice::class)
->select('customer_id',
DB::raw('sum(total_price)')
)->groupBy('customer_id');
}
और क्वेरी बिल्डर में
$result = Customer::select([
'customers.id',
'customers.last_name',
])->with('invoice_sum')
->whereHas('customerInvoices', function(Builder $q) {
$q->where('customer_invoices.status', 1);
})->get();
के अनुसार वाक्पटु :withCount() get()
पर $columns को ओवरराइड करता है पहले मुद्दा डालें select()
mehtod और फिर with()
. का उपयोग करें समारोह