public function relations() { return array( 'category'=>array(self::BELONGS_TO,'category','cat_id'), ); }
'VarName'=>array('RelationType', 'ClassName', 'ForeignKey', ...additional options)
RelationType关系类型
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
(多对多) 这个对应于数据库中的 多对多 关系。由于多数 DBMS 不直接支持 多对多 关系,因此需要有一个关联表将 多对多 关系分割为 一对多 关系。在 AR 术语中,我们可以解释 MANY_MANY
为 BELONGS_TO
和 HAS_MANY
的组合。$posts=Post::model()->with('category')->find();
$posts->category->title;
在定义关系时 也可以指定需要查询的数据以及其他一些额外的信息:
‘select’,‘condition’,‘order’,‘with’,‘joinType’,‘alias’
yii通过关联操作获取数据:
foreach($data as $val){ $tags[] = $val -> content; } $userStr = implode(',', $tags);