Могу ли я воссоздать следующий MySQL-запрос в CakePHP? - PullRequest
2 голосов
/ 08 февраля 2012

Я пытаюсь выполнить этот запрос в CakePHP (1.3, если это актуально):

select * from releases r join formats f on r.id = f.release_id
    where r.default_upc = f.bar_code

Я надеялся, что смогу сделать что-то в модели Release, например:

    var $hasOne = array('Format'=>array(
        'conditions' => array('Release.default_upc'=>'Format.bar_code')
    ));

К сожалению, это просто приводит к нулевому формату;очевидно, что «Format.bar_code» еще не доступен во время выполнения запроса.

Какой самый быстрый способ получения желаемых результатов?

Ответы [ 2 ]

1 голос
/ 08 февраля 2012

Хм, кажется, что простое изменение условий на

'conditions' => array('Release.default_upc = Format.bar_code')

может привести к результатам, которые я ищу.Это идиоматический способ Cake делать вещи?

0 голосов
/ 10 февраля 2012

Насколько я знаю, использование условий с JOINS в cakePHP должно выполняться так же, как вы делали это в ответе, который вы предоставили.
Случалось со мной несколько раз до
Первый способ следует использовать в самой модели и в рамках «обычных» вызовов поиска.

...