【发布时间】:2019-03-19 02:01:46
【问题描述】:
我有一个名为 Purchases 的模型,它与 Product 模型具有多对多关系。我创建了一个模型来管理名为 PurchasedProduct 的多对多关系中的表。该模型与另一个称为 Currency 的模型相关。
采购表:ID、编号、created_at、updated_at。
Product_table:ID、描述、created_at、updated_at。
货币表:ID、代码、名称、比率。
Product_Purchase 表:ID、purchase_id、product_id、currency_id、数量、价格。
一个User可以购买多个Products然后,他可以支付多个Currencies。为了管理每笔交易,我想按货币对总额(数量 * 价格)求和。
我试过用访问器来做,但我所能做的就是在不考虑货币的情况下对数量 * 价格的乘积求和。
public function getTotalAttribute($value)
{
$transformers = $this->transformers();
return $transformers->sum(\DB::raw('quantity * price'));
}`
【问题讨论】:
-
您应该从这里开始编写确切的原始 MySQL 查询,该查询会生成您想要的输出。然后,担心将其转换为 Eloquent/PHP 代码。
-
@TimBiegeleisen 当然,我有,但我只使用 laravel 来寻找结果
-
那么您应该包含该查询。我认为这会帮助您更快地在这里得到答案。
-
请提供一些示例数据和预期结果。
标签: laravel eloquent laravel-query-builder