您要是看着好啊就轉載, 寫上文章的出處就成。
要是哪寫的很差也歡迎您多批評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