在cakephp中逐个实现分页

时间:2014-01-16 11:13:52

标签: php sql cakephp pagination

我正在尝试在ORDER BY子句中使用CASE运算符。

以下内容不起作用(忽略ORDER BY子句):

$this->Paginator->settings = array(
        'order' => array("CASE
                WHEN Transaction.created IS NOT NULL THEN Transaction.created
                WHEN Transaction.created IS NULL THEN Query.created
            END DESC")
    );

(以下情况会很好:)

$this->Paginator->settings = array(
        'order' => array('Query.created' => 'desc'),
    );

在本地CakePHP 2.4查找方法中实现MySQL CASE的任何方法吗?

1 个答案:

答案 0 :(得分:3)

尝试创建虚拟字段(假设您正在分页Transaction

$this->Transaction->virtualFields['my_created'] = "CASE
                WHEN Transaction.created IS NOT NULL THEN Transaction.created
                WHEN Transaction.created IS NULL THEN Query.created
            END";

$this->Paginator->settings = array(
        'order' => array('Transaction.my_created' => 'desc'),
    );