2011-07-12 156 views
3

我嘗試使用Symfony2的學說

$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。077.2011'。

+0

數據庫varchar(40)中的該字段(在您的實體中)和列(在數據庫中) – calumbrodie

+0

以及實體字符串 – Daniel

+0

這是您的表的主鍵的數據類型是什麼? –

回答

1

如果「基準」數據庫字段是日期時間,儘量選用:2011-07-10格式:-)
Symfony2 articles

+0

很明顯,他沒有日期作爲日期時間字段,學說會用其他格式刷新它。 –

4

的日期使用VARCHAR或許是最差的做法可能。基準字段更改爲日期或日期時間,相應地改變你的模型,因此doctine場日期,然後這樣做:在架構實踐

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

http://www.php.net/manual/en/datetime.construct.php

簡,我會建議審查: http://brixican.blogspot.ca/2011/04/5-mysql-best-practices-when-designing.html

+0

它實際上應該是'array('timestamp'=>'DESC')',參見https://doctrine-orm.readthedocs.org/en/latest/reference/working-with-objects.html?highlight=findby#通過-簡單條件 –

0

我同意其他人應該將字段更改爲日期時間格式,但是如果您在開發人員模式下使用Symfony2,則可以檢查與您的Doctrine ORM查詢構建器相對應的SQL日誌(DB查詢),並從那裏知道什麼是Wro ng與您的查詢生成器