(Symfony 4 с Doctrine) Добавление поля сущности для хранения результатов агрегированных функций - PullRequest
0 голосов
/ 05 января 2019

У меня есть DQL-запрос, который просматривает все сообщения, показывает их комментарии и т. Д ...:

public function getAllPosts(User $user){
    $qb = $this->createQueryBuilder('p');
    $qb->select('p, postPhotos,postVideos, comments')
        ->leftJoin('p.photos', 'postPhotos')
        ->leftJoin('p.videos', 'postVideos')
        ->leftJoin('p.comments', 'comments')'

и т.д ...

Затем я должен просмотреть сообщения и выполнить статистическую функцию для подсчета количества комментариев на сообщение.

Таким образом, для выполнения этой Доктрины требуется, чтобы вы объявили поле внутри сущности Comment, я назову его numComments, а затем напишу функцию хранилища, чтобы установить его значение в CommentRepository.php:

Комментарий к классу {

/**
 * @ORM\Id()
 * @ORM\GeneratedValue()
 * @ORM\Column(type="integer")
 */
private $id;

/**
 * @var integer
 *
 * @ORM\Column(name="numComments", type="integer")
 */
private $numComments;

Как только я поместил это поле numComments в класс комментариев, Doctrine по ошибке считает, что это поле является частью моего исходного пост-запроса (вверху), и выдает мне ошибку: «Столбец не найден: 1054 Неизвестный столбец» c3_.numComments 'в' списке полей ''

Должен ли я добавить новую миграцию и добавить этот столбец «numComments» в фактическую таблицу базы данных комментариев?

Почему Доктрина была настолько трудной и заставляла бы вас так поступать?

...