例如,假设我正在存储客户帐户余额随时间的变化。我将更改的金额(字段为amount
)以及更改的日期(date
)存储在我的表中。
假设我有一个更改,我想获取该用户先前更改的数量(这不是对象的属性)。如果我手动编写 SQL 查询,我会这样做:
SELECT *,
(SELECT b1.amount
FROM balanceHistory as b1
WHERE b1.date < b0.date
AND customer_id = 123
ORDER BY B1.date
LIMIT 1) as prev_balance
FROM balanceHistory as b0
WHERE customer_id = 123;
在 Symfony 中,我可以编写一个自定义查询,并且在每次更改帐户后,获取该更改的相关先前更改;但这很昂贵,因为我正在迭代许多对象。
我可以添加一个新属性,比如“previousChange”,但不添加任何 ORM 信息,并且不让它搞砸任何 ORM 的东西吗?如果可以的话,一旦我像这样手动加入,我如何访问这个属性?