需求如下:
查询book表信息,同时关联entitystags表,以entitystags的字段eid关联book的主键,再关联查询tags表,以entitystags表的tid字段关联tags表的主键id
同时读出这三张表的信息来,在Yii可以如下处理,先在relations方法中声明三张表的关系,在控制器中,以with表明渴求式调用,即可,代码如下:
在book的model文件中声明关系:
public function relations(){ return array( ‘entitystags‘=>array(self::HAS_MANY, ‘EntityStag‘, ‘eid‘, ‘alias‘=>‘estag‘, ‘select‘=>‘*‘), ‘tags‘=>array(self::HAS_MANY, ‘Stag‘, ‘‘ , ‘alias‘=>‘stag‘ ,‘on‘=>‘estag.tid=stag.id‘ , ‘select‘=>‘title,id‘), ); }
控制器的调用:
$model=Book::model()->with("entitystags" , "tags")->findByPk($id);
Yii的Relational Active Record三张表连接查询
时间: 2024-11-03 21:04:58