站長資訊網
        最全最豐富的資訊網站

        yii2 hasone怎么用

        Yii2中的表之間的關聯有2種,它們用來指定兩個模型之間的關聯。

        yii2 hasone怎么用

        一對多:hasMany

        一對一:hasOne (推薦學習:yii教程)

        返回結果:這兩個方法的返回結果都為yiidbActiveQuery對象

        第一個參數:所關聯的模型的類名稱。

        第二個參數:是一個數組,其中鍵為所關聯的模型中的屬性,值為當前模型中的屬性。

        關聯的使用

        現在我們獲取一個客戶的所有的訂單信息

        $customer = Customer::findOne(1);   $orders = $customer->orders; // 通過在Customer中定義的關聯方法(getOrders())來獲取這個客戶的所有的訂單。

        上面的兩行代碼會生成如下sql語句

        SELECT * FROM customer WHERE id=1;   SELECT * FROM order WHERE customer_id=1;

        關聯結果緩存

        如果客戶的訂單改變了,我們再重新調用

        $orders = $customer->orders;

        再次得到訂單的時候你會發現沒有變化。原因是只會在第一次執行$customer->orders的時候才會去數據庫里面查詢,然后會把結果緩存起來,以后查詢的時候都不會再執行sql。

        那么如果我想再次執行sql如何做呢?可以執行

        unset($customer->orders);   $customer->orders;

        然后就可以從數據庫里面取數據了。

        代碼說明:

        // 執行sql語句: SELECT * FROM customer WHERE id=1   $customer = Customer::findOne(1);   //執行sql:SELECT * FROM order WHERE customer_id=1   $orders1 = $customer->orders;   //這個不會執行sql,直接使用上面的緩存結果   $orders2 = $customer->orders; //如果中間的用戶訂單有變化,我們就不能從緩存中獲取,要unset掉 unset($customer->orders);   $orders2 = $customer->orders;

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 影音先锋国产精品国语对白| 久久夜色精品国产| 国产精品午夜福利在线无码| 国内精品久久久久影院一蜜桃| 久久精品国产亚洲Aⅴ蜜臀色欲| 四虎国产精品永久地址49| 精品国际久久久久999波多野 | 精品久久久久久久久久中文字幕| 国产精品1024香蕉在线观看 | 精品人妻系列无码人妻免费视频| 第一福利永久视频精品| 日韩国产成人精品视频| 亚洲AV无码乱码精品国产 | 成人精品一区二区久久| 国产亚洲精品xxx| 国产美女精品一区二区三区| 亚洲精品无码专区在线在线播放 | 精品久久久久久无码专区| 亚洲精品午夜国产VA久久成人| 欧美精品免费专区在线观看| 精品久久久久久久中文字幕| 成人午夜精品亚洲日韩 | 亚洲AV无码成人精品区狼人影院 | 国产欧美日韩综合精品一区二区三区| 老司机99精品99| 国产精品爱啪在线线免费观看| 91精品国产综合久久精品| 国产精品女同一区二区| 久久亚洲私人国产精品| 日韩精品无码一区二区三区免费| 无码精品久久久久久人妻中字| 色欲久久久天天天综合网精品| 亚洲国产精品无码久久久秋霞2| 亚洲无码日韩精品第一页| 亚洲日韩精品一区二区三区无码| 自拍偷在线精品自拍偷无码专区| 中文成人无码精品久久久不卡| 无码人妻精品中文字幕| 老司机67194精品线观看| 精品欧洲av无码一区二区 | 精品久久人妻av中文字幕|