Php Phalcon:多态关联

Php Phalcon:多态关联,php,mysql,polymorphic-associations,phalcon,Php,Mysql,Polymorphic Associations,Phalcon,Phalcon是否有一种内置的方式来管理多态关联-通过行为或本地-而不是手动处理它们 谢谢 多态关联通常被误解,因为有很多方法可以使用这种反模式 也就是说,如果我说得对的话,你想要一个有价值的模型,可能是指一种或另一种模型,对吧 理论上讲这是可能的,所以请尝试一下,告诉我你是否成功了 正如我之前所说,通过Phalcon有很多方法可以实现这一点,我现在可以想象的一个方法是: main模型当然应该有两列(即“assoc\u id”、“assoc\u type”)。然后在Phalcon中设置一个与特殊

Phalcon是否有一种内置的方式来管理多态关联-通过行为或本地-而不是手动处理它们


谢谢

多态关联通常被误解,因为有很多方法可以使用这种反模式

也就是说,如果我说得对的话,你想要一个有价值的模型,可能是指一种或另一种模型,对吧

理论上讲这是可能的,所以请尝试一下,告诉我你是否成功了

正如我之前所说,通过Phalcon有很多方法可以实现这一点,我现在可以想象的一个方法是:

main模型
当然应该有两列(即“assoc\u id”、“assoc\u type”)。然后在Phalcon中设置一个与特殊模型的关系,在本例中称为
AssocModel

AssocModel
没有实际的表,但重写了该方法,并基于“assoc\u type”返回相应的表名

如果这些关联模型共享一组公共列,您可以创建一个接口
iasocialable
或其他什么,这样您就可以保持关联模型的定义一致

但是,如果您确实需要实际模型从这种关联中获取一些独占数据,那么不幸的是,需要第二个模型实例来获取其余的列/属性。为此,就像
getSource
返回正确的表名一样,您可以创建另一个方法,用相应的ID实例化正确的模型类


不确定这是否有帮助,但请与我分享这方面的任何进展,以便我们可以在这方面更进一步

您可以使用我的库来执行此操作。但是要小心。该库正在开发中,我将在实际项目中对其进行测试后,立即发布稳定版本: