Метод Cakephp find производит странный SQL - PullRequest
1 голос
/ 05 июля 2011

Я пытаюсь сделать запрос 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 Ответ

2 голосов
/ 05 июля 2011

Cake не может знать, что вы не намеревались использовать строку (т. Е. Она синтаксически идентична, например, array( 'Transaction.name' => 'foo' )).Это работает, если вы зададите условие в виде одной строки:

'conditions' => array( 'Transaction.amount > Transaction.received' )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...