Я продолжаю бороться с Symfony в отношении того, куда поместить некоторые логику и функции.
В этом случае у меня есть простой запрос. Я хочу знать, сколько «Профилей» зависит от адреса.
запрос:
SELECT count(*)
FROM beneficiary_profile AS bp
JOIN person AS p ON bp.beneficiary_id = p.id
JOIN contact_address AS ca ON p.contact_address_id = ca.id
WHERE ca.id = 2108 -- address id
плохой способ сделать это [в моем контроллере] с помощью методов сущностей это
$dependant = 0;
foreach ($address->getPeople() as $person) {
if ($person->getBeneficiaryProfile() !== null) {
$dependant++;
}
}
в конечном счете, это служит флагом для печати предупреждения о редактировании зависимой записи адреса.
Моей первой мыслью было добавить к сущности новый метод, $address->isDependent()
, который бы возвращал bool
на основе ($count > 1)
, но для этого мне потребовалось бы получить хранилище сущностей от сущности.
Вскоре появится целый набор логики, которая должна быть связана с удалением, а затем удалением (или нет), чтобы предотвратить потерю записей. Логика не так проста, как каскадирование, поскольку между адресом и профилем может быть много людей. в миксе также есть запись о доме.
Должен ли я просто построить свой запрос в хранилище адресов, а затем установить флаг в контроллере? (веточка читает флаг и отображает враждующих или нет)