2012-05-14 54 views
0
$v = array(1,11.38,15.8); 
    $sortByPrice = $this->Product->query 
    (
    "SELECT *, 
    CASE `Product`.`currency` 
     WHEN '1' THEN $v[0] 
     WHEN '2' THEN $v[1] 
     WHEN '3' THEN $v[2] 
    END AS 'ratio'   
    FROM `products` AS `Product` 
     LEFT JOIN `marks` AS `Mark` ON (`mark_id` = `Mark`.`id`) 
     LEFT JOIN `categories` AS `Category` ON (`category_id` = `Category`.`id`) 
     RIGHT JOIN `photos` AS `Photo` ON (`Photo`.`product_id` = `Product`.`id`) 
    ORDER BY price*ratio DESC" 
    ); 

如何为此查询分页?我读了book.cake但它不很好地解释如何分页查询()cakephp?

+0

有没有理由不使用来自DBO数据源的包装器方法(查找和分页)?你也没有提到你的蛋糕版本。在1.3和2.x虚拟领域是这里走的路。 – mark

+0

我试图使用查找,但我无法在查找中插入CASE ...我使用cakephp的2.x版本 –

+0

使用'find()'与[虚拟字段](http://book.cakephp。组织/ 2.0/EN /模型/虚拟fields.html)。 – JJJ

回答

0

在这种情况下,如果你的当前页面对应产品 比简直是在CakePHP中3这个样子的:

$this->paginate($sortByPrice); 
$this->set(compact('$sortByPrice')); 

并如前面评论说它更好地使用cakephp的内置查询功能