0

我在一个表中有一堆 DNS 记录,其中“类型”列定义了给定记录的类型。

我想在 Lithium 中有一个模型的类层次结构来表示这些记录,例如:

RR - base resource record (abstract - sort of)  
RR_SOA - SOA record, extends RR  
RR_CNAME - CNAME record, extends RR  
...  etc ...

所以每个记录一个类,都映射到同一个表。

接下来我想使用 RR::find 它会自动给我一个对象列表,其中每个对象的类对应于实际记录的类型。

如果没有太多的黑魔法,这甚至可能吗?

4

1 回答 1

1

是的(一切皆有可能),但你的方法可能过于雄心勃勃。在我的 POV 中,我将依赖于@class RR处理目标表的基本查询,但是通过使用过滤器RR (特别是在find继承自的方法上Model),您可以通过引用将实例传递给新实例化的类集(SOA, CNAME 等...)以及它们在表中的位置(因此 SOA 对象仅与该特定记录或主键相关联)。

有一些黑魔法正在发生,但锂核心开发人员没有考虑到任何事情。

底线,用于您的表(RR 模型)的 1 个基类,用于 SOA、CNAME 等的多个(可能从与模型无关的另一个基类继承)以及一个过滤器(真正放在任何地方)来干预 RR::find 和/ 或后期绑定的 RR::findby*

这有意义吗?

(这需要一些试验和错误。首先看看你是否可以操纵数据输出,然后剩下的就是黄油)

于 2012-07-30T02:48:28.667 回答