摘要:要是哪寫的不好也歡迎您多批評說明一下這個不是什么困難的問題但是網上給的答案都不太正確或者不太好用。自己寫了一個注釋版本可以方便大家的工作。請大家在下載后將和里面的文件分別放到的和下然后在數據庫里面執行文件這是一個關于員工信息的表單。
您要是看著好啊就轉載, 寫上文章的出處就成。
要是哪寫的不好也歡迎您多批評
說明一下, 這個不是什么困難的問題, 但是網上給的答案都不太正確, 或者不太好用。
自己寫了一個demo注釋版本, 可以方便大家的工作。
請大家在下載后將models和controller里面的文件分別放到yii的models和controller下, 然后在數據庫里面執行sql.sql文件
| +----------------------------------------------------------------------+ */ 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; } }在controller里面調用
···
$result = Staff::model()->getList(); echo ""; print_r($result);···
我們就可以看到輸出的信息了
Array ( [0] => Array ( [id] => 1 [name] => 二他媽媽 [type_id] => 1 [depart_id] => 2 [type_title] => 不明真相的吃瓜群眾-類型一 [depart_title] => 部門2 ) ......demo下載地址 密碼: h852
鏈接描述
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30417.html
摘要:今天把這個問題講明白了,看看是怎么個多表關聯以及如何去優化這個關聯。現需要在列表展示表的來源渠道,且該渠道可搜索。關聯表字段增加查詢中的搜索模型也是通過實現的,該模型通過控制著哪個字段可搜索,哪個字段不可搜索。 作者:白狼 出處:http://www.manks.top/yii2_many_ar_relation_search.html 本文版權歸作者,歡迎轉載,但未經作者同意必須保留...
摘要:第二個參數是一個數組,其中鍵為所關聯的模型中的屬性,值為當前模型中的屬性。這里注意中的第二個是指關聯的中的,第一個是指中的。 首先先來說明一下表結構 表結構 現在有訂單表、用戶表、商品清單表、商品庫存表 showImg(https://segmentfault.com/img/bVRcME?w=833&h=244); showImg(https://segmentfault.com/i...
摘要:前言是特有的用于多表關聯查詢的函數,平時在使用多表關聯查詢的時候建議使用它們。需求分析使用一條查詢語句就能把列表的數據全部展現出來,列表包含一對一,一對多,以及多對多的關系。不能破壞自有的表頭排序功能,以及中的存值。相關資料中多表關聯查詢 前言 hasOne、hasMany是Yii2特有的用于多表關聯查詢的函數,平時在使用多表關聯查詢的時候建議使用它們。為什么?因為這種方式關聯查詢出來...
閱讀 1118·2021-10-09 09:43
閱讀 18475·2021-09-22 15:52
閱讀 1059·2019-08-30 15:44
閱讀 3050·2019-08-30 15:44
閱讀 3244·2019-08-26 14:07
閱讀 904·2019-08-26 13:55
閱讀 2566·2019-08-26 13:41
閱讀 3087·2019-08-26 13:29