我使用symfony和doctrine mongodb odm。在持久化文档后,我在db中获得了正确的数据:
{
"_id": ObjectID("565572731ba05cb40e000029"),
"date": ISODate("2015-10-31T23:00:00.000Z"),
"from": 10,
"to": 18,
"type": "work",
"comment": "",
"createdOn": ISODate("2015-11-25T08:33:55.000Z")
}
但是当我尝试获取存储库中的数据时,它返回null作为日期字段的值。
*编辑:我删除了" createdOn" (也是日期类型字段)并且在它工作正常之后。但是当我在我的文档中再次有两个日期字段时,它返回NULL,但现在为" createdOn"字段。
object(AppBundle\Document\Report)#636 (10) {
["id":protected]=>
string(24) "565572731ba05cb40e000029"
["date":protected]=>
NULL
["from":protected]=>
int(10)
["to":protected]=>
int(18)
["type":protected]=>
string(4) "work"
["comment":protected]=>
string(0) ""
["createdOn":protected]=>
object(DateTime)#572 (3) {
["date"]=>
string(26) "2015-11-25 09:33:55.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(13) "Europe/Berlin"
}
}
我尝试使用不同的字段名称(假设"日期"保留)但结果是相同的。 有谁知道为什么它是NULL?
我的文档类:
/**
* @MongoDB\Document(collection="report", repositoryClass="AppBundle\Document\ReportRepository")
* @HasLifecycleCallbacks
*/
class Report {
/** @MongoDB\Id */
protected $id;
/** @MongoDB\date */
protected $date;
/** @MongoDB\int */
protected $from;
/** @MongoDB\int */
protected $to;
/** @MongoDB\string */
protected $type;
/** @MongoDB\string */
protected $comment;
/** @MongoDB\date */
protected $createdOn;
/**
* @MongoDB\PrePersist()
* @MongoDB\PreUpdate()
*/
public function prePersist() {
$this->setCreatedOn(new \DateTime());
}
...当然还有(生成的)getter和setter。并且" createdOn"是一个也是日期字段,它返回正确的值。
答案 0 :(得分:1)
尝试清除缓存:
php app / console c:c