手机版

Yii多表联合查询操作详解

时间:2021-10-28 来源:互联网 编辑:宝哥软件园 浏览:

本文针对Yii多表联查进行汇总描述,供大家参考,具体内容如下

1、多表联查实现方法

有两种方式一种使用数据访问对象(数据访问对象)写结构化查询语言语句实现,这种实现理解起来相对轻松,只要保证结构化查询语言语句不写错就行了。缺点也很明显,比较零散,而且不符合框架的推荐框架,最重要的缺点在于容易写错。

还有一种便是下面要说的使用框架自带的活跃记录实现多表联查

2、 整体框架

我们需要找到一个用户的好友关系,用户的信息放在用户表中,用户之间的关系放在关系表中,而关系的内容则放在关系类型表中。明显的我们只需要以关系表为主表联查其他两个表即可。我主要从代码的角度,分析下实现的过程。

3、CActiveRecord

我们首先需要对3张表建立相应的模型,下面是关系表的代码

SocialRelation.php

?php /** *这是表“{ social _ relationship } }”的模型类。* *以下是表“{ social _ relationship } }”: * @ property integer $ relationship _ id * @ property integer $ relationship _ type _ id * @ property integer $ user _ id * @ property integer $ other _ user _ id *中的可用列* *以下是可用的模型关系3360 * @属性社交关系类型$ relationship * @属性访问用户$ user * @属性访问用户$ other user */class社交关系扩展了cactiverect {/* * *返回指定阿肯色州类的静态模型* @param字符串$className活动记录类名* @返回社交关联静态模型类*/public静态函数模型($ CLASS name=_ _ CLASS _ _){返回父模型:($ CLaSS name); }/* * * @返回字符串关联的数据库表名*/公共函数tableName(){ 0返回“{ social _ relation } }”;}/* * * @返回模型属性的数组验证规则*/public function rules(){//note :您应该只为//将接收用户输入的那些属性定义规则。返回数组(数组(' relation_type_id,user_id,other_user_id ',' numerical ',' integerOnly '=true),//搜索使用以下规则()。//请删除那些不应该搜索的属性。数组(“relation_id,relation_type_id,user_id,other_user_id”,“safe”,“on”=“search”),);}/* * * @返回数组关系规则。*/公共函数关系(){ //NOTE:您可能需要调整能量损耗率

版权声明:Yii多表联合查询操作详解是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。