Doctrine Symfony2学说

Doctrine Symfony2学说,doctrine,symfony,Doctrine,Symfony,我尝试使用 $position = $repository->findBy( array('id' => $profileId,'datum' => '10.07.2011'), array('timestamp', 'DESC') ); 数据库看起来像 id haveInCircles inOtherCircles datum timestamp 1 24 14 11.07.2011 1310403840 1 20 10 10.

我尝试使用

$position = $repository->findBy(
    array('id' => $profileId,'datum' => '10.07.2011'),
    array('timestamp', 'DESC')
);
数据库看起来像

id  haveInCircles   inOtherCircles  datum   timestamp
1   24  14  11.07.2011  1310403840
1   20  10  10.07.2011  1310317440
1   10  5   09.07.2011  1310317440
1   25  17  12.07.2011  1310468838

我得到的结果总是最后一天的数据进入数据库。在本例中为“12.07.2011”。

如果“datum”的数据库字段是datetime,请尝试使用:2011-07-10格式:-)

将varchar用于日期可能是最糟糕的方法。将基准字段更改为date或datetime,相应地更改模型,使doctine字段为date,然后执行如下操作:

$position = $repository->findBy(
    array('id' => $profileId,'datum' => new Datetime('2011-07-10')),
    array('timestamp' => 'DESC')
);

简要介绍我建议回顾的模式实践:

我同意其他人的看法,即您应该将字段更改为Datetime格式,但是如果您在开发人员模式下使用Symfony2,您可以检查与您的ORM查询生成器相对应的SQL日志(DB查询),从中您可能知道您的查询生成器有什么问题

该字段的数据类型是什么(在您的实体中)数据库varchar(40)和实体STRING中的列(在数据库中)是表的主键?很明显,他没有将日期作为datetime字段,条令会用其他格式刷新它。它实际上应该是
数组('timestamp'=>'DESC')
,请参阅