我有两个数据库表,
orders
和
orderdetails
subTotalAmount
(计算字段)如下:
Order.php命令
private $subTotalAmount;
public function calculateSubTotalAmount(){
$subtotal = 0;
foreach ($this->getOrderDetails() as $detail) {
$subtotal = $subtotal + $detail->getPrice();
}
$subtotal = $subtotal -$this->getDiscount();
return $subtotal;
}
public function getSubTotalAmount()
{
$this->subTotalAmount = $this->calculateSubTotalAmount();
return $this->subTotalAmount;
}
我希望能够按此字段排序,但鉴于此字段不相关,当我尝试时,会得到错误:
[语义错误]第0行,第135列,靠近“subTotalAmount”:错误:
小计金额
有没有可能按此字段订购?
我要在中实现的查询是:
public function searchAndSort($term, $sortAttribute, $sortOrder)
{
$qb = $this->createQueryBuilder('po');
$qb->andWhere('po.invoiceNumber LIKE :term or u.email LIKE :term')
->LeftJoin('po.orderedBy', 'u')
->setParameter('term', '%'.$term.'%')
->orderBy($sortAttribute, $sortOrder)
->getQuery()->getResult();
return $qb;
}