Наследование доктрины: получите количество строк дочерних таблиц со столбцом родительской таблицы в предложении WHERE - PullRequest
0 голосов
/ 08 апреля 2011

Я работаю в системе с несколькими подписчиками (user_id), имеющей нескольких клиентов и поставщиков (наследуя класс «Person»). Мне нужно отобразить количество клиентов и поставщиков (итоги групп для дочерних таблиц) для каждого подписчика. Как я могу получить итоговые данные по этой группе с помощью DQL?

Person:
  columns:
    user_id: { type: integer }
    name:    { type: string(80) }
    //...

Customer:
  inheritance:
    type:     concrete
    extends:  Person
  columns:
    //...

Vendor:
  inheritance:
    type:     concrete
    extends:  Person
  columns:
    vendor_type:    { type: string(80), notnull: true }
    terms_id:       { type: integer }
    //...

1 Ответ

0 голосов
/ 29 февраля 2012

Глядя на свой вопрос, я понял, насколько это глупо. Запрос очень прост:

    $result =  Doctrine_Query::create()
        ->select('type, COUNT(*) AS count')
        ->from('Person')
        ->groupBy('type')
        ->fetchArray();
...