我有一个实体(订单),其属性是一对多到另一个实体(orderRows)。如何汇总orderRows中的totalPrice
以获得行的所有价格的grandTotal
以获得完整订单的价格?
这是$orderRows
实体中的$totalSum
和Order
属性;
/**
* @var array $orderRows
*
* @ORM\OneToMany(targetEntity="PmodOrderRow", mappedBy="order", cascade={"persist", "remove"}, orphanRemoval=true) )
*/
protected $orderRows;
protected $totalSum;
我试图在我的Order
实体中获得此函数的总和;
public function getTotalSum()
{
$orderRows = $this->getOrderRows();
foreach($orderRows as $row){
$this->totalSum += $row['totalPrice'];
}
return $this->totalSum;
}
但它不起作用。
在我的OrderRow
实体中,我有一个特定行的$totalPrice
属性。
那我怎么能实现这个目标呢?
答案 0 :(得分:0)
方法$this->getOrderRows()
应该返回Collection
个PmodOrderRow
个对象,而不是数组行数组(数组)。
以这种方式尝试:
public function getTotalSum()
{
$totalSum = 0;
foreach($this->getOrderRows() as $row){
$totalSum += $row->getTotalPrice();
}
return $totalSum;
}
假设您在PmodOrderRow
上有一个总价的吸气剂。
同样递增$this->totalSum
并不是一个好主意。每次调用getTotalSum()
时它的值都会增加,所以我使用了局部变量。