Вот выдержка из схемы, которая у меня есть
Software:
columns:
title:
type: string(255)
id_publisher:
type: integer
id_developper:
type: integer
Company:
columns:
name:
type: string(255)
nationality:
type: string(255)
Как видите, моя модель программного обеспечения имеет две внешние ссылки: издатель и разработчик. Я хотел бы создать отношение «один ко многим» для каждой из этих двух ссылок. Проблема в том, что они обе компании.
Сначала я попробовал что-то вроде показанного ниже в моей модели программного обеспечения, но отношение работает только для первой локальной ссылки id_publisher.
relations:
Company:
type: one
foreignType: many
local: [id_publisher, id_developper]
foreign: id
Затем я попробовал это (всегда на модели программного обеспечения):
relations:
Publisher:
class: Company
type: one
foreignType: many
local: id_publisher
foreign: id
Developper:
class: Company
type: one
foreignType: many
local: id_developper
foreign: id
Но когда я выполняю запрос, который подсчитывает количество программных ссылок на компанию...
public function findAllQuery(Doctrine_Query $q = null) {
$q = Doctrine_Query::create()
->select('c.*, COUNT(s.id) AS count_software')
->from('Company c')
->leftJoin('c.Software s')
->groupBy('c.id');
return $q;
}
... в предложении COUNT учитываются только издатели.
Итак, наконец, мой вопрос: как иметь дело с несколькими отношениями «один ко многим» одной и той же модели? Спасибо за ваше время !