我在单个记录/ get上遇到了访问者的问题。
我的日期记录有价值' 2015-10-10'。
//PatientsController.php
$record = $patients->find()->first();
debug($record->dob);die;
//would print 19-10-2016 (today's date)
在我的实体/ Patient.php中 受保护的函数_getDob($ dob) { $ time = new Time($ dob); 返回$ time-> i18nFormat(' dd-MM-YYY'); }
如果我将$time->i18nFormat('dd-MM-YYY');
更改为$time->i18nFormat('YYY-MM-dd');
,则会显示' 2015-10-10',这是正确的,但不是我想要的格式。
问题是,为什么?
目前,我使用自定义finder和formatResults并将格式更改为d-m-y
public function findPatients($query, $options) {
return $query->formatResults(function($results) {
return $results->map(function($row) {
$tgl = new Time( $row['dob'] );
$row['dob'] = $tgl->i18nFormat('dd-MM-YYY');
return $row;
});
});
}
仍然想知道为什么它不能在访问器中格式化。
答案 0 :(得分:0)
你可能会 dd-MM-YYY 它应该是 dd-MM-yyyy 那么你的代码应该是
public function findPatients($query, $options) {
return $query->formatResults(function($results) {
return $results->map(function($row) {
$tgl = new Time( $row['dob'] );
$row['dob'] = $tgl->i18nFormat('dd-MM-yyyy');
return $row;
});
});
}
以下是Official Doc