Учение Symfony2 - PullRequest
       2

Учение Symfony2

3 голосов
/ 12 июля 2011

Я пытаюсь выполнить запрос к базе данных, используя

$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».

Ответы [ 3 ]

4 голосов
/ 22 ноября 2012

Использование varchar для дат - это, вероятно, худший из возможных подходов. Измените базовое поле на date или datetime, измените ваши модели соответственно, чтобы поле doctine было date, а затем сделайте что-то вроде:

$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

1 голос
/ 02 сентября 2011

Если поле базы данных для 'datum' равно datetime, попробуйте использовать: 2011-07-10 формат :-) статьи Symfony2

0 голосов
/ 26 декабря 2012

Я согласен с другими, что вам следует изменить поле на формат Datetime, однако, если вы используете Symfony2 в режиме разработчика, вы можете проверить журналы SQL (запросы к БД), которые соответствуют вашему построителю запросов Doctrine ORM, и оттуда вы можете знать что не так с вашим построителем запросов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...