Cakephp find方法产生奇怪的SQL

时间:2011-07-05 08:57:30

标签: cakephp

我正在尝试做一个Cakephp Find查询,而且我有一点clausule:

$pending = $this->Transaction->find('all', array('conditions' => array('Transaction.amount >' => 'Transaction.recieved')));

我希望它会产生这样的结果:

SELECT * From `transactions` as `Transaction` WHERE `Transaction`.`amount` > `Transaction`.`recieved`

然而,它产生了以下SQL:

SELECT * From `transactions` as `Transaction` WHERE `Transaction`.`amount` > 'Transaction.recieved'

注意

之间的细微差别
`Transaction`.`recieved` 

'Transaction.recieved'

这是为什么?我的SQL查询现在失败了。

1 个答案:

答案 0 :(得分:2)

Cake无法知道您不打算使用字符串(即它在语法上与例如array( 'Transaction.name' => 'foo' )完全相同)。如果您将条件作为单个字符串提供,则它可以工作:

'conditions' => array( 'Transaction.amount > Transaction.received' )