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

        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號
        主站蜘蛛池模板: 一区二区三区四区精品视频| 久久久久久噜噜精品免费直播| 国产高清在线精品一本大道| 无码国产乱人伦偷精品视频| 精品偷自拍另类在线观看丰满白嫩大屁股ass | 亚洲AV永久无码精品一区二区| www夜片内射视频日韩精品成人| 97精品人妻系列无码人妻| 日韩精品无码一区二区三区免费 | 亚洲精品自产拍在线观看动漫| 999在线视频精品免费播放观看| 欧美激情精品久久久久久| 国产精品一区二区三区99| 欧美成人精品一区二区三区| 国产91久久精品一区二区| 99视频精品全部在线观看| 国内精品伊人久久久久AV影院| 欧美jizzhd精品欧美| 无码日韩精品一区二区三区免费 | 精品国产一区二区三区无码| 欧产日产国产精品精品| 久久久免费精品re6| 热re99久久6国产精品免费| 无码人妻精品一区二区三区在线 | 亚洲精品成人久久久| 日本精品一区二区三区在线视频一 | 国产一区二区精品久久| 91国内外精品自在线播放| 国产成人精品免费久久久久| 国产精品无码无卡在线播放| 国产精品无码无片在线观看| 国产成人精品一区二区秒拍| 国产成人精品视频一区二区不卡 | 欧美精品黑人粗大免费| 久久丫精品国产亚洲av不卡 | 国产精品igao视频网| 好吊妞视频精品| 中文字幕亚洲精品| 国产系列高清精品第一页 | 亚洲国产成人精品无码久久久久久综合| 日韩精品一区二区三区不卡|