Dbix class 为DBIC关系设置默认WHERE子句

Dbix class 为DBIC关系设置默认WHERE子句,dbix-class,Dbix Class,我们有一个相当大的数据库,其中有许多表,其中包含字段delete\u time。此字段中非空的行应排除在大多数“正常”查询之外。例如,我们有一个“Org”对象,它有许多“User”对象。但在大多数情况下,$org->users不应包含带有非空delete\u time字段的“User”对象 现在,我们可以定义has_many关系来排除这些,但这意味着我们必须调整..->has_many('users'=>'::User',…)无处不在。如果::User类可以应用一个“defaultwhere子句

我们有一个相当大的数据库,其中有许多表,其中包含字段
delete\u time
。此字段中非空的行应排除在大多数“正常”查询之外。例如,我们有一个“Org”对象,它有许多“User”对象。但在大多数情况下,
$org->users
不应包含带有非空
delete\u time
字段的“User”对象

现在,我们可以定义
has_many
关系来排除这些,但这意味着我们必须调整
..->has_many('users'=>'::User',…)
无处不在。如果
::User
类可以应用一个“defaultwhere子句”来指定
delete\u time为NULL
,并且仅当在显式WHERE子句中未指定
delete\u time
时,这将更自然,更不容易出错。(或者如果
参数列表中没有明确的WHERE子句,那么我就不太挑剔了。)

我在想,这可以在
::User
类中设置为trait或插件。这有可能吗?我在寻找鼓励和指导,而不一定是一个具体的解决方案