2011-02-28 90 views
4

我想知道是否有办法为AR关系创建我自己的规则或扩展现有的HAS_MANY,BELONGS_TO等?可以扩展AR关系吗?

谢谢。

+1

你能清楚地指定这种自定义关系的例子吗? – Jon 2011-03-19 00:32:30

+0

在这里你可以找到关于CActiveRelation的有用信息http://www.yiiframework.com/doc/api/1.1/CActiveRelation – ArtoAle 2011-03-19 13:50:58

回答

0

每个AR关系都由相应的类创建。

const BELONGS_TO='CBelongsToRelation'; 
    const HAS_ONE='CHasOneRelation'; 
    const HAS_MANY='CHasManyRelation'; 
    const MANY_MANY='CManyManyRelation'; 
    const STAT='CStatRelation'; 

这些类扩展CActiveRelation»CBaseActiveRelation»CComponent。

您可以使用扩展CActiveRelation的自定义类创建您自己的AR关系。

+0

按照你的推理线,我有两个问题:1 - 我可以创建我自己的关系类叫 - for例如 - polymorhic? 2 - 我可以在哪里存储我的自定义关系类? – GodFather 2011-03-01 14:45:36

+0

我从来没有这样做,但我认为你可以。 看看CActiveRelation做什么以及关系类如何扩展它以知道你的班级必须做什么。我没有找到任何关于它的文档。 你可以在任何地方存储自定义关系类,但要确保Yii知道它在哪里。 – 2011-03-02 08:38:09