У меня есть два объекта. Первый называется «Статус»:Symfony 2 & Doctrine 2: Сложное отношение beetwen entity
<?php
class Status {
protected $id;
protected $type = null; // standarized type of status (f.e. "locked", "disabled")
protected $value = true; // true or false (value of status)
protected $change_reason = null;
protected $changed_by;
protected $changed_at;
}
Я очистил аннотации для лучшей читаемости.
И второе, напр. Счет. Поскольку Учетная запись не является единственной сущностью, использующей Статусы, отношения между статусом и любым другим «статусовым» сущностью (я думаю) должны быть много-ко-многим. Для учетной записи будет добавлена таблица account_status и т. Д.
Дополнительный статус принадлежит только одному объекту.
Все это работает в этой конфигурации, но я действительно не знаю, как получить список учетных записей с их последними статусами.
Я написал запрос SQL для получения фактических статусы:
SELECT * FROM (
SELECT t.type, t.value
FROM status AS t
ORDER BY t.changed_at DESC
) AS t1 GROUP BY t1.type
Мои вопросы:
- Является ли эта идея верна на всех?
- Как получить список учетных записей со всеми их последними статусами?
Извините за мой плохой английский.
EDIT: Я хочу только, чтобы получить счет, присоединиться к его последние статусы, а затем получить их просто: задача $ -> GetStatus («выделены»), чтобы получить значение последнего (младшего) статус типа «выделены»
EDIT2: идеал будет по-прежнему иметь возможность сортировать и фильтровать по статусу данного типа
Вы можете добавить отношение lastStatus к каждой учетной записи – WizardZ
, каждая учетная запись может иметь более одного статуса, например. «заблокирован», «истек» и т. д. Лучшим примером для этого будет задача - «закрыто», «выделено». – Krystian