我正在尝试做一个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查询现在失败了。
答案 0 :(得分:2)
Cake无法知道您不打算使用字符串(即它在语法上与例如array( 'Transaction.name' => 'foo' )
完全相同)。如果您将条件作为单个字符串提供,则它可以工作:
'conditions' => array( 'Transaction.amount > Transaction.received' )