Как добиться наблюдателя на Symfony

Предположим, у меня есть следующие объекты:

Пользователь

class User{
    private $id;
    private $name;
    private $active;
    private $clients;
}

Клиент

class Client{
    private $id;
    private $name;
    private $active;
    private $subdomain;
    private $users;
}

субдомен

class Subdomain{
    private $id;
    private $name;
    private $active;
}

Со всеми их сеттерами и получателями, таблицами orm и отношениями. Пользователи и клиенты имеют отношение «многие ко многим», тогда как отношения между клиентом и субдоменом - «один к одному».

Я хочу не активировать клиента, пока не будет активен хотя бы один пользователь, и этот клиент не будет активен, пока не будет активен его поддомен. Теперь, когда это можно сделать, просто создав некоторую функцию и вызывая ее всякий раз, когда объект обновляется, и когда у меня все isActive() истинно, я бы вызвал setActive для нужного пользователя. Но я искал что-то вроде Entity или наблюдателя за записями, поэтому всякий раз, когда запись обновляется, автоматически проверяйте некоторые поля, а затем обновляйте поле для этого пользователя. Другими словами, я не хочу вручную вызывать функции setActive () и checkForClientAndSubdomainActivity (). Так есть ли что-нибудь подобное готовому? или я должен его построить?

Заранее спасибо, я вырезал большую часть кода только для удобства чтения.

Из Sf 3.4 у вас есть компонент рабочего процесса, он поставляется с множеством различных конфигураций. Я не совсем понимаю, что вам нужно, но вы можете взглянуть :)

Mcsky 16.04.2018 19:49
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
0
1
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать события Doctrine для выполнения ваших операций каждый раз, когда вы выполняете обновление определенной сущности (есть больше событий): док.

Другие вопросы по теме