加载中...

Yii-数据模型- relations数据关连


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通过关联操作获取数据:

  1. 如果是一对一:A->VarName
  2. 如果是一对多:A->VarName->name
  3. 如果是多对多:$data= As->VarName   //数组

foreach($data as $val){
   $tags[] = $val -> content;
}
$userStr = implode(',', $tags);



还没有评论.