Cakephp 试图包含使用UNIX\u时间戳的字段

Cakephp 试图包含使用UNIX\u时间戳的字段,cakephp,cakephp-2.3,Cakephp,Cakephp 2.3,我正在尝试将更新的datetime列转换为数字。所以我在我的可控行为中做到了这一点 $this->paginate = array( 'limit'=>1, 'fields'=>array( 'id', ), 'contain'=>array( 'Image'=>array('fields'=>array( '

我正在尝试将更新的datetime列转换为数字。所以我在我的可控行为中做到了这一点

    $this->paginate = array(
        'limit'=>1,
        'fields'=>array(
            'id',
        ),
        'contain'=>array(
            'Image'=>array('fields'=>array(
                'id',
                'UNIX_TIMESTAMP(Image.updated) AS `rev`',
            ))
        )
    );
我从Paginator获得这些数据

Array
(
    [0] => Array
        (
            [Receipt] => Array
                (
                    [id] => 19938
                )
            [Image] => Array
                (
                    [0] => Array
                        (
                            [id] => 18143
                            [receipt_id] => 19938
                            [Image] => Array
                                (
                                    [0] => Array
                                        (
                                            [rev] => 1357872726
                                        )

                                )

                        )

                    [1] => Array
                        (
                            [id] => 18144
                            [receipt_id] => 19938
                            [Image] => Array
                                (
                                    [0] => Array
                                        (
                                            [rev] => 1357872728
                                        )

                                )

                        )

                )

        )

)
出于某种原因,
图像
为每条记录嵌套两次。如果我删除了单位时间戳,它将正确地获取数据

    $this->paginate = array(
        'limit'=>1,
        'fields'=>array(
            'id',
        ),
        'contain'=>array(
            'Image'=>array('fields'=>array(
                'id',
                'updated',
            ))
        )
    );
输出

Array
(
    [0] => Array
        (
            [Receipt] => Array
                (
                    [id] => 19938
                )

            [Image] => Array
                (
                    [0] => Array
                        (
                            [id] => 18143
                            [updated] => 2013-01-10 21:52:06
                            [receipt_id] => 19938
                        )

                    [1] => Array
                        (
                            [id] => 18144
                            [updated] => 2013-01-10 21:52:08
                            [receipt_id] => 19938
                        )

                )

        )

)
知道我在字段中添加表达式时为什么会出现这种情况吗?

您可以尝试使用:


不确定我的符号是否正确,请试一试,我还没有测试过。

True,没有意识到您正在关联模型上进行测试。
public function __construct($id = false, $table = null, $ds = null) {
    parent::__construct($id, $table, $ds);
    $this->virtualFields['name'] = sprintf(
        'UNIX_TIMESTAMP(%s.updated) AS %s.rev', $this->alias, $this->alias
    );
}