PHP Symfony сортирует сущности, используя атрибут сущности Doctrine и связанные атрибуты сущности - PullRequest
0 голосов
/ 09 мая 2018

Итак, у меня есть объект, называемый Сервисом, куда пользователи могут заходить и сообщать о своем дне, а другой объект, называемый посещением, содержит информацию об отдельных посещениях, которые пользователь имел в этот день. это отношения один ко многим. одна форма для многих посещений.

Форма имеет дату посещение имеет время начала и окончания посещения.

Я пытаюсь создать отчет, который показывает каждую форму, созданную в этом месяце, отсортированную сначала по form.date, а затем по visit.startTime. но для жизни я не могу понять это. Может быть, я обдумываю это.

Я работал с формами, которые посещают много раз, создав фильтр Twig, который сортирует посещения по startTime ... но это не очень хороший способ ... Я уверен, что это нужно сделать в хранилище, но я не могу на всю жизнь понять, как заставить его работать.

Может ли кто-нибудь там предложить какой-нибудь совет о том, как написать построитель запросов, чтобы справиться с этим?

1 Ответ

0 голосов
/ 09 мая 2018

Вы можете сделать это разными способами, но лучше всего будет сортировать при запросе базы данных. Вы можете получить данные из базы данных, используя Doctrine\ORM\QueryBuilder. Пример:

// ServiceRepository
public function getServicesWithVisists() {
    $builder = $this->createQueryBuilder('s');
    $builder->select('s', 'v')
        ->leftJoin('s.visits', 'v')
        ->orderBy('s.date', 'ASC')
        ->addOrderBy('v.startTime', 'ASC');

    return $builder->getQuery()->getResult();
}
...