2012-05-11 28 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]单引号不会实际取代它与变量 - 它将只显示为该文本。