【发布时间】:2018-04-17 00:10:58
【问题描述】:
假设我有以下实体:
用户
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;
}
使用所有的 setter 和 getter,orm 表和关系。用户和客户是多对多的关系,而客户和子域是一对一的关系。
我想要实现的是在至少一个用户处于活动状态之前不激活客户端,并且该客户端在其子域处于活动状态之前不会处于活动状态。
现在我现在可以简单地通过创建一些函数来完成,并在实体更新时调用它,当我拥有所有isActive() 为真时,我会在所需用户上调用 setActive。但是我正在四处寻找实体或记录观察者之类的东西,因此每当更新记录时会自动检查某些字段,然后更新该用户的字段。换句话说,我不想手动调用 setActive() 和 checkForClientAndSubdomainActivity() 函数。那么有没有类似的东西已经建成了呢?还是我应该建造它?
提前谢谢,我删掉了大部分代码只是为了便于阅读。
【问题讨论】:
-
从 Sf 3.4 你有 workflow component 它带有许多不同的配置。我不太了解您的需求,但您可以看看:)