Cakephp 试图包含使用UNIX\u时间戳的字段
我正在尝试将更新的datetime列转换为数字。所以我在我的可控行为中做到了这一点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( '
$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
);
}