Symfony2 Doctrine

3

我尝试使用数据库查询

$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

我得到的结果总是数据库中最后一天的数据。在这种情况下是'2011年12月7日'。

那个字段(在你的实体中)和列(在数据库中)的数据类型是什么? - calumbrodie
在数据库中,varchar(40) 表示字符串类型,而在实体中则表示为 string。 - Daniel
你的表的主键是什么? - Andrés
3个回答

4

实际上应该是 array('timestamp' => 'DESC'),请参见 https://doctrine-orm.readthedocs.org/en/latest/reference/working-with-objects.html?highlight=findby#by-simple-conditions - Gottlieb Notschnabel

1

如果数据库字段为'datum'是datetime类型,尝试使用:2011-07-10格式 :-)
Symfony2文章


很明显他没有将日期作为日期时间字段,Doctrine会将其刷新为其他格式。 - Mats Rietdijk

0

我同意其他人的看法,你应该将字段更改为Datetime格式。但是,如果你在Symfony2开发者模式下使用,你可以检查与你的Doctrine ORM查询构建器对应的SQL日志(数据库查询),从那里你可能会知道查询构建器出了什么问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接