您要是看着好啊就转载, 写上文章的出处就成。
要是哪写的很差也欢迎您多批评php
说明一下, 这个不是什么困难的问题, 可是网上给的答案都不太正确, 或者不太好用。
本身写了一个demo注释版本, 能够方便你们的工做。
请你们在下载后将models和controller里面的文件分别放到yii的models和controller下, 而后在数据库里面执行sql.sql文件sql
<?php /* +----------------------------------------------------------------------+ | 这是一个关于员工信息的表单。主表是员工的信息。 | | 副表有员工类型详细表, 员工所属部门详细表 | +----------------------------------------------------------------------+ | Authors: 和平老三 <981267080@qq.com> | +----------------------------------------------------------------------+ */ class Staff extends CActiveRecord{ public static function model($className=__CLASS__){ return parent::model($className); } public function tableName(){ return 'p3_staff'; // 主表的名称 } public function rule(){ } /* relations方法 */ public function relations(){ return array( /* +----------------------------------------------------------------------+ | 解释一下'type'=>array(self::BELONGS_TO, 'Type', 'type_id') | | 1. type: 能够起一个你想起的名字, 在下面多表链接的时候须要使用它 | | 2. self::BELONGS_TO 是链接方式 表明多对一 | | 3. Type: 是被链接的表所属类的文件名称 好比说/ | | 我想链接type表 那么我就要在model下新建一个xxx.php 里面的table指向/ | | 这张表 | | 4. type_id: 是主表的外键名称 | +----------------------------------------------------------------------+ */ 'type'=>array(self::BELONGS_TO, 'Type', 'type_id'), // 若是想要链接更多的表, 就按照上面type这条数据仿写就能够了 例如 'depart'=>array(self::BELONGS_TO, 'Depart', 'depart_id'), ); } /** * [getList 进行多表链接并获取数据] * @return [array] [返回多表链接后的数据] */ public function getList(){ $criteria = new CDbCriteria; $criteria->alias = 't'; $criteria->with = array('type', 'depart'); // array里面填写relations返回的数组的键值, 并用,隔开 $result = Staff::model()->with('type','depart')->findAll($criteria); $pageInfo = []; foreach ($result as $key=>$value) { $pageInfo[$key]['id'] = $value['id']; $pageInfo[$key]['name'] = $value['name']; $pageInfo[$key]['type_id'] = $value['type_id']; $pageInfo[$key]['depart_id'] = $value['depart_id']; $pageInfo[$key]['type_title'] = $value->type->title; // 注意 副表要这么写才行 $pageInfo[$key]['depart_title'] = $value->depart->title; } return $pageInfo; } }
···数据库
$result = Staff::model()->getList(); echo "<pre>"; print_r($result);
···数组
咱们就能够看到输出的信息了yii
Array ( [0] => Array ( [id] => 1 [name] => 二他妈妈 [type_id] => 1 [depart_id] => 2 [type_title] => 不明真相的吃瓜群众-类型一 [depart_title] => 部门2 ) ......
demo下载地址 密码: h852code
连接描述get