YII 关联表查询

六月ゝ 毕业季﹏ 提交于 2019-12-20 18:10:02

AR模型中可以通过relations()方法建立关系

class B    public function relations()
    {
        return array(
                'a'=>array(self::BELONGS_TO, 'A', 'id')
        );
    }

这样一对一关系就建立好了。

$b = B::model()->find($criteria);
$a = $b->a;

第二步是利用一个lazyFinder重新查询结构赋值给$a;

四种关系:

关系定义例子
BELONGS_TO A和B的关系是一对多,那么B属于A Post属于User
HAS_MANY A和B之间的关系是一对多,那么A有多个B User有多个Post
HAS_ONE 这是HAS_MANY的一种特殊情况,A至多有一个B User至多有一个Profile
MANY_MANY 这个对应多对多的情况,在AR里会将多对多以BELONGS_TO和HAS_MANY的组合来解释 Post和Category

在AR中通过重写CActiveRecord类的relations()方法来申明关系;这个方法返回一个关系配置的数组;一个数组无素代表一个单独的关系,格式如下:

'VarName'=>array('RelationType','ClassName','ForeignKey', ...additional options)

 

 

Var Name 关系名
Relation Type 四种关系:self::BELONGS_TO, self::HAS_ONE, self::HAS_MANY, self::MANY_MANY
Class Name 代表当前AR类要关联的那个AR类名
Foreign Key 实现关系的外键, 有可能有多个,即列名

refer:http://blog.csdn.net/yjj1s/article/details/6885276

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!