CakePHP 3引用我的find()调用的'fields'配置中定义的函数名

时间:2017-11-22 21:57:19

标签: mysql cakephp cakephp-3.0

我正在查询一个名为order的数据库表,因此我必须在app.php配置中设置'quoteIdentifiers' => true。但是,当我将函数名称放入fields调用的find()配置时,CakePHP也会引用它们。

    $orders->find('all', array(
        'fields' => array(
            'DATE(Orders.date_added)',
            'COUNT(*)',
        ),
        'conditions' => array(
            'Orders.order_status_id <>' => 0,
        ),
        'group' => array(
            'DATE(Orders.date_added)',
        ),
    ));

上面的查询最终调用

SELECT <...>, `DATE(Orders.date_added)` FROM `order` <...>

显然会引发错误。

我搜索了很多内容,尝试了this

    $orders = $orders->find('all', array(
        'conditions' => array(
            'Orders.order_status_id <>' => 0,
        ),
        'group' => array(
            'DATE(Orders.date_added)',
        ),
    ))->select(function($exp) {
        return $exp->count('*');
    });

这也没用,给我一些array_combine错误。

有没有办法让我取消引用这些函数名称,同时保持自动引用查询的其余部分?这就是我想要完成的事情:

SELECT <...>, DATE(Orders.date_added) FROM `order` <...>

请帮忙。

0 个答案:

没有答案