成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

在yii下使用model進(jìn)行多表連接的demo

habren / 563人閱讀

摘要:要是哪寫的不好也歡迎您多批評說明一下這個(gè)不是什么困難的問題但是網(wǎng)上給的答案都不太正確或者不太好用。自己寫了一個(gè)注釋版本可以方便大家的工作。請大家在下載后將和里面的文件分別放到的和下然后在數(shù)據(jù)庫里面執(zhí)行文件這是一個(gè)關(guān)于員工信息的表單。

您要是看著好啊就轉(zhuǎn)載, 寫上文章的出處就成。
要是哪寫的不好也歡迎您多批評

說明一下, 這個(gè)不是什么困難的問題, 但是網(wǎng)上給的答案都不太正確, 或者不太好用。
自己寫了一個(gè)demo注釋版本, 可以方便大家的工作。
請大家在下載后將models和controller里面的文件分別放到y(tǒng)ii的models和controller下, 然后在數(shù)據(jù)庫里面執(zhí)行sql.sql文件

models
                                 |
   +----------------------------------------------------------------------+
 */

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: 可以起一個(gè)你想起的名字, 在下面多表連接的時(shí)候需要使用它      |
               | 2. self::BELONGS_TO 是連接方式 代表多對一                            |
               | 3. Type: 是被連接的表所屬類的文件名稱 比如說/                        |
               | 我想連接type表 那么我就要在model下新建一個(gè)xxx.php 里面的table指向/   |   
               | 這張表                                                               | 
               | 4. type_id: 是主表的外鍵名稱                                         |
               +----------------------------------------------------------------------+
             */
            "type"=>array(self::BELONGS_TO, "Type", "type_id"), 
            // 如果想要連接更多的表, 就按照上面type這條數(shù)據(jù)仿寫就可以了 例如
            "depart"=>array(self::BELONGS_TO, "Depart", "depart_id"), 
        );
    } 
    /**
     * [getList 進(jìn)行多表連接并獲取數(shù)據(jù)]
     * @return [array] [返回多表連接后的數(shù)據(jù)]
     */
    public function getList(){
        $criteria = new CDbCriteria; 
        $criteria->alias = "t";
        $criteria->with = array("type", "depart"); // array里面填寫relations返回的數(shù)組的鍵值, 并用,隔開
        $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里面調(diào)用

···

    $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

鏈接描述

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/30417.html

相關(guān)文章

  • yii2 ActiveRecord多表關(guān)聯(lián)以及多表關(guān)聯(lián)搜索實(shí)現(xiàn)

    摘要:今天把這個(gè)問題講明白了,看看是怎么個(gè)多表關(guān)聯(lián)以及如何去優(yōu)化這個(gè)關(guān)聯(lián)。現(xiàn)需要在列表展示表的來源渠道,且該渠道可搜索。關(guān)聯(lián)表字段增加查詢中的搜索模型也是通過實(shí)現(xiàn)的,該模型通過控制著哪個(gè)字段可搜索,哪個(gè)字段不可搜索。 作者:白狼 出處:http://www.manks.top/yii2_many_ar_relation_search.html 本文版權(quán)歸作者,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留...

    venmos 評論0 收藏0
  • Yii 多表關(guān)聯(lián)

    摘要:在里面對數(shù)據(jù)庫操作有一個(gè)很方便的功能就是多表關(guān)聯(lián),通過在里面指定對某個(gè)表的關(guān)聯(lián),這樣就可以很快得到相關(guān)信息而不需要自己去寫復(fù)雜的語句。 在 Yii 里面對數(shù)據(jù)庫操作有一個(gè)很方便的功能就是多表關(guān)聯(lián),通過在 model 里面指定對某個(gè)表的關(guān)聯(lián),這樣就可以很快得到相關(guān)信息而不需要自己去寫復(fù)雜的 sql 語句。 下面我們拿 user 表和 news 表舉例。(一個(gè)用戶發(fā)表了多篇文章) 首先,...

    warnerwu 評論0 收藏0
  • YII2中多表關(guān)聯(lián)使用

    摘要:第二個(gè)參數(shù)是一個(gè)數(shù)組,其中鍵為所關(guān)聯(lián)的模型中的屬性,值為當(dāng)前模型中的屬性。這里注意中的第二個(gè)是指關(guān)聯(lián)的中的,第一個(gè)是指中的。 首先先來說明一下表結(jié)構(gòu) 表結(jié)構(gòu) 現(xiàn)在有訂單表、用戶表、商品清單表、商品庫存表 showImg(https://segmentfault.com/img/bVRcME?w=833&h=244); showImg(https://segmentfault.com/i...

    vslam 評論0 收藏0
  • Yii2中hasOne、hasMany以及多對多關(guān)聯(lián)查詢用法

    摘要:前言是特有的用于多表關(guān)聯(lián)查詢的函數(shù),平時(shí)在使用多表關(guān)聯(lián)查詢的時(shí)候建議使用它們。需求分析使用一條查詢語句就能把列表的數(shù)據(jù)全部展現(xiàn)出來,列表包含一對一,一對多,以及多對多的關(guān)系。不能破壞自有的表頭排序功能,以及中的存值。相關(guān)資料中多表關(guān)聯(lián)查詢 前言 hasOne、hasMany是Yii2特有的用于多表關(guān)聯(lián)查詢的函數(shù),平時(shí)在使用多表關(guān)聯(lián)查詢的時(shí)候建議使用它們。為什么?因?yàn)檫@種方式關(guān)聯(lián)查詢出來...

    qc1iu 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<