其他聚合函数方法在我的 laravel 8 项目中不起作用
Other Aggregate Functions method not work in my laravel 8 project
我有 laravel 项目,框架版本为 laravel 8.11.2。
当我想和 Other Aggregate Functions 一起工作时 withSum() 告诉我错误
我的代码:
$buyInvoice=BuyInvoice::Where([
['provider_id',$validatedData['ProviderCode']],
['InvoiceDate','>',$fromDate],
['InvoiceDate','<',$ToDate],
])->withSum('jewelsItems', 'weight')
->orderBy('jewelsItems_sum_weight')
->get();
描述:我正在尝试对我在某些条件下找到的普通发票中的所有 jewelsItem 的重量求和,并将其存储在每张发票的新列中。
要点:我不想使用Raw Expressions 因为他们的漏洞
型号:
1.jewelItem 型号:
protected $table = 'jewel_items';
public function jewel(){
return $this->belongsTo('App\Models\Jewel');
}
public function buyInvoice(){
return $this->belongsTo(BuyInvoice::class,'buy_invoice_id');
}
2.buyInvoice 型号:
protected $table = 'buy_invoices';
public function provider(){
return $this->belongsTo(Provider::class,'provider_id');
}
public function jewelsItems(){
return $this->hasMany(JewelsItem::class,'buy_invoice_id');
}
错误:
Call to undefined method App\Models\BuyInvoice::withSum()
是不是和我的框架有关?。
我怎样才能彻底解决这个问题?
您没有足够新的 Laravel 8 版本。
Release Notes for 8.x
v8.12.0
(2020-10-29)
...
Added withMax()
|withMin()
|withSum()
|withAvg()
methods to Illuminate/Database/Eloquent/Concerns/QueriesRelationships
(#34965,
f4e4d95, #35004) ...
您至少需要 8.12.0
.
版本
我有 laravel 项目,框架版本为 laravel 8.11.2。 当我想和 Other Aggregate Functions 一起工作时 withSum() 告诉我错误
我的代码:
$buyInvoice=BuyInvoice::Where([
['provider_id',$validatedData['ProviderCode']],
['InvoiceDate','>',$fromDate],
['InvoiceDate','<',$ToDate],
])->withSum('jewelsItems', 'weight')
->orderBy('jewelsItems_sum_weight')
->get();
描述:我正在尝试对我在某些条件下找到的普通发票中的所有 jewelsItem 的重量求和,并将其存储在每张发票的新列中。
要点:我不想使用Raw Expressions 因为他们的漏洞
型号:
1.jewelItem 型号:
protected $table = 'jewel_items';
public function jewel(){
return $this->belongsTo('App\Models\Jewel');
}
public function buyInvoice(){
return $this->belongsTo(BuyInvoice::class,'buy_invoice_id');
}
2.buyInvoice 型号:
protected $table = 'buy_invoices';
public function provider(){
return $this->belongsTo(Provider::class,'provider_id');
}
public function jewelsItems(){
return $this->hasMany(JewelsItem::class,'buy_invoice_id');
}
错误:
Call to undefined method App\Models\BuyInvoice::withSum()
是不是和我的框架有关?。 我怎样才能彻底解决这个问题?
您没有足够新的 Laravel 8 版本。
Release Notes for 8.x
v8.12.0
(2020-10-29) ... AddedwithMax()
|withMin()
|withSum()
|withAvg()
methods toIlluminate/Database/Eloquent/Concerns/QueriesRelationships
(#34965, f4e4d95, #35004) ...
您至少需要 8.12.0
.