2012-05-11 2 views
0
$v = array(1,11.38,15.8); 
    $sortByPrice = $this->Product->query 
    (
    "SELECT *, 
    CASE `currency` 
     WHEN '1' THEN $v[0] 
     WHEN '2' THEN $v[1] 
     WHEN '3' THEN $v[2] 
    END AS 'ratio' 
    FROM products 
    ORDER BY price*ratio DESC 
    " 
    ); 

я хочу, чтобы преобразовать то, что выше для функции поиска я пытался что-то подобное (но это не работает) ..преобразования запроса(), чтобы найти() CakePHP

$v = array(1,11.38,15.8); 
    $bla = $this->Product->find('all', array(
    'conditions' => array(
    'Product.currency', 
    '((
     CASE WHEN 
      Product.currency=1 THEN $v[0] 
      Product.currency=2 THEN $v[1] 
      Product.currency=3 THEN $v[2] 
     END 
    )) AS ratio'), 
    'order' => 'ratio', 
    'limit' => 10 
    )); 

может кто-то для преобразования запроса в поиск

+0

Могу ли я спросить, почему вам нужно его преобразовать? –

ответ

0

Вы помещаете в ключ conditions. Переместите его в ключ fields или сделайте его virtualField - что может работы.

Редактировать: также $v[0] в одинарных кавычках фактически не заменит его переменной - он будет просто отображаться как текст.

Смежные вопросы