亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

Yii框架關聯查詢with用法分析

2024-05-04 23:28:25
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Yii框架關聯查詢with用法,以實例形式較為詳細的分析了yii支持的四種類型關系的具體用法,是使用yii框架進行關聯查詢時非常實用的技巧,需要的朋友可以參考下
 
 

本文實例分析了Yii框架關聯查詢with用法。分享給大家供大家參考。具體方法如下:

Yii框架關聯查詢與mysql中的關聯查詢會有什么區別呢?這里小編就與各位來一起來看看吧。

Yii的關聯查詢確實是一個方便的東西,網上的資料也很多,但是大部分都是Ctrl+c,Ctrl+v,有些東西一直沒有人出來詳細的寫篇文章說明一下,在參考了網上很多資源以后,加上自己的的一些理解,寫下了這篇文章,給廣大初學者朋友們提供一點個人見解。

YII 支持四種類型的關系:

BELONGS_TO(屬于): 如果表 A 和 B 之間的關系是一對多,則 表 B 屬于 表 A (例如 Post 屬于 User);
HAS_MANY(有多個): 如果表 A 和 B 之間的關系是一對多,則 A 有多個 B (例如 User 有多個 Post);
HAS_ONE(有一個): 這是 HAS_MANY 的一個特例,A 最多有一個 B (例如 User 最多有一個 Profile);
MANY_MANY: 這個對應于數據庫中的 多對多 關系。 由于多數 DBMS 不直接支持 多對多 關系,因此需要有一個關聯表將 多對多 關系分割為 一對多 關系。
 
菜鳥們看到這個真的能明白嗎?

初學的時候,個人表示頭暈至極,經過反復的測試,我給大家非常直白的解釋一下。
現有用戶表user和博客表blog,博客是屬于某個用戶的,而用戶會發表多篇博客。
BELONGS_TO:
controller

復制代碼代碼如下:
$blogs = $blog_model->with('b_user')->find();

model 這里的model指的是blog_model
復制代碼代碼如下:
'b_user'=>array(self::BELONGS_TO, 'user', 'author')

適用范圍,查找博客的時候需要把博客的作者也查出來。
b_user中第二個參數:子表的表名,第三個參數,主表中用于存子表主鍵的字段(blog表中用于存user表主鍵的字段)。
 
HAS_ONE: 
controller
復制代碼代碼如下:
$user_blog = $user_model->with('u_blog')->find();

model 這里的的model指的是user_model
復制代碼代碼如下:
'u_blog'=>array(self::HAS_ONE, 'blog', 'author')

測試一下,不僅僅查出了作者的信息,而且還查出了一篇該作者的博客。
u_blog中的第二個參數:子表表名,第三個參數,子表中用于存主表主鍵的字段(blog表中用于存user表主鍵的字段)。
 
HAS_MANY: 
controller
復制代碼代碼如下:
$user_blogs = $user_model->with('u_blogs')->find();

model 這里的的model指的是user_model
復制代碼代碼如下:
'u_blogs'=>array(self::HAS_MANY, 'blog', 'author')

測試一下,不僅僅查出了作者的信息,也不僅僅查出了一篇該作者的博客,而且還查出了該作者其它的博客。
u_blogs中的第二個參數:子表表名,第三個參數,子表中用于存主表主鍵的字段(blog表中用于存user表主鍵的字段)。
 
MANY_TO_MANY:
這個東西啊,我還沒用過,貌似基本上也不會用到,待我測一下,再來續上。。。
 
至此,Yii with的最最基本用法說的差不多了,但是你就沒有啥疑問嗎?
如何指定要查詢的子表字段?
HAS_MANY中查出了該用戶的所有文章,如果我只想要查5篇呢?
……等你來提問。
那么,廢話不多說,解決第一個問題
復制代碼代碼如下:
'u_blogs'=>array(self::HAS_MANY, 'blog', 'author','select'=>'gid,title,content')

這樣試試?
第二個問題
復制代碼代碼如下:
'u_blogs'=>array(self::HAS_MANY, 'blog', 'author','select'=>'gid,title,content','condition'=>'u_blogs.gid=2')

搞定!
 
相信看過這些非常小白的講解后應該恍然大悟了吧。此所謂萬事開頭難啊,剩下的東西相信你一看就懂了~~~
 
以下內容來自Yii手冊:
 
延遲加載時有一定的關系,下列選項可用:
'group': string, GROUP BY子句。 默認值為空。 注意,列引用需要加入'relationName'前綴 。(例如: relationName.age)。此選項僅適用于HAS_MANY 和 MANY_MANY 關系。
'having': string, HAVING子句。 默認值為空。 注意,列引用需要加入'relationName'前綴 。(例如: relationName.age)。此選項僅適用于HAS_MANY 和 MANY_MANY 關系。
'limit': 數據行的limit選擇。 這個選項不能應用到BELONGS_TO。
'offset': 數據行的偏移量。 這個選項不能應用到BELONGS_TO。
'through': 獲取相關的數據時將用作橋的模型的關系的名稱??梢栽O置僅為 HAS_ONE 和 HAS_MANY。此選項自版本 1.1.7 可用。

 

以下是一個例子,為 'Post' 活動記錄類相關對象的一個示例:

復制代碼代碼如下:
return array(
    'author'=>array(self::BELONGS_TO, 'User', 'author_id'),
    'comments'=>array(self::HAS_MANY, 'Comment', 'post_id', 'with'=>'author', 'order'=>'create_time DESC'),
    'tags'=>array(self::MANY_MANY, 'Tag', 'post_tag(post_id, tag_id)', 'order'=>'name'),
);

 

希望本文所述對大家的yii框架程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久av| 97香蕉超级碰碰久久免费软件| www.亚洲成人| 国产精品一区二区三区在线播放| 91精品国产91久久久久久吃药| 日韩在线观看免费全| 亚洲激情 国产| 国产亚洲精品久久| 国产精品香蕉国产| 国产成人91久久精品| 中文字幕亚洲一区二区三区五十路| 欧美猛交免费看| 国产狼人综合免费视频| 国产乱肥老妇国产一区二| 97热精品视频官网| 色一区av在线| 538国产精品视频一区二区| 亚洲人成网7777777国产| 亚洲最大福利网站| 成人美女av在线直播| 69视频在线免费观看| 久久久欧美一区二区| 国产精品视频一区二区三区四| 国产精品v片在线观看不卡| 欧美日韩免费区域视频在线观看| 欧美日韩在线观看视频| 欧美成人网在线| 国产91对白在线播放| 青草热久免费精品视频| 国产一区二区三区四区福利| 黄色成人av网| 久久久久久中文| 欧美激情综合色综合啪啪五月| 久久精品这里热有精品| 精品小视频在线| 国产成人精品久久二区二区91| 9.1国产丝袜在线观看| 亚洲色图av在线| 欧美孕妇孕交黑巨大网站| 欧美—级a级欧美特级ar全黄| 久久人人爽人人爽人人片av高清| 亚洲欧美制服另类日韩| 欧美精品久久久久a| 国产精品久久久久久久久久久久久久| 欧美日在线观看| 国产成人精品久久二区二区91| 久久精品视频99| 日韩欧美中文在线| 久久久久久12| 亚洲成人久久网| 欧美一级片免费在线| 国产精品美女视频网站| 亚洲91精品在线观看| 亚洲福利视频久久| 国产午夜精品理论片a级探花| 色综久久综合桃花网| 日韩成人在线播放| 久久久中文字幕| 欧美自拍视频在线观看| 久久精品中文字幕一区| 日韩欧美a级成人黄色| 欧美午夜无遮挡| 亚洲国产日韩欧美综合久久| 欧美成人精品不卡视频在线观看| 日韩女优人人人人射在线视频| 91免费欧美精品| 国产精品免费久久久久久| 日韩欧美亚洲范冰冰与中字| 欧美另类极品videosbest最新版本| 91国产一区在线| 欧美激情视频一区二区| 色与欲影视天天看综合网| 久久免费视频观看| 国产精品专区h在线观看| 亚洲欧洲偷拍精品| 菠萝蜜影院一区二区免费| 欧美激情第6页| 国产精品久久久久免费a∨大胸| 成人中文字幕在线观看| 国产精品久久综合av爱欲tv| 亚洲成av人影院在线观看| 成人免费激情视频| 久久久久久久久久久久av| www日韩中文字幕在线看| 夜色77av精品影院| 影音先锋欧美精品| 国产精品一区久久久| 国产精品视频久久久| 九色精品免费永久在线| 日韩av免费看| 精品久久久久久亚洲精品| 亚洲高清久久网| 国语自产精品视频在线看一大j8| 丝袜亚洲另类欧美重口| 亚洲片在线观看| 欧美日韩国产123| 欧美富婆性猛交| 亚洲色在线视频| 欧美中文字幕在线视频| 精品国产91乱高清在线观看| 91精品国产色综合久久不卡98口| 91久久精品国产91性色| 成人黄色网免费| 中文字幕成人在线| 欧美日韩性视频| 亚洲最新av网址| 最近2019中文字幕第三页视频| 中文字幕久精品免费视频| 91午夜在线播放| 欧美怡春院一区二区三区| 国产v综合v亚洲欧美久久| 国产精品久久久久久久久久| 亚洲嫩模很污视频| 亚洲第一中文字幕| 欧美日韩视频在线| 孩xxxx性bbbb欧美| 国产精品91久久久久久| 欧美一级大胆视频| 亚洲成人精品视频在线观看| 国产亚洲欧美日韩精品| 日韩成人激情在线| 精品福利免费观看| 日韩免费精品视频| 国产一区二区丝袜高跟鞋图片| 精品国偷自产在线视频99| 神马久久桃色视频| 中文字幕日韩专区| 国产精品啪视频| 国产精品福利片| 欧美精品久久一区二区| 91精品国产色综合| 国产精品∨欧美精品v日韩精品| 国产精品国内视频| 国产亚洲一区二区在线| 日本精品久久中文字幕佐佐木| 国产精品美腿一区在线看| 国产精品毛片a∨一区二区三区|国| 国产精品99久久久久久久久久久久| 91高潮在线观看| 日韩av男人的天堂| 亚洲天堂av图片| 亚洲天堂男人天堂| 久久激情五月丁香伊人| 日韩精品中文在线观看| 91精品国产99| 亚洲一区免费网站| 日韩欧美主播在线| 国产一区二区av| 国产成人精品a视频一区www| 日韩人体视频一二区| 久久国产精品久久久久| 亚洲欧美视频在线| 精品成人乱色一区二区| 亚洲视频第一页| 国产精品美女av| 最近2019中文字幕大全第二页| 欧美精品在线第一页| 欧美激情一区二区三级高清视频| 精品亚洲一区二区三区| 欧美成人免费一级人片100| 疯狂欧美牲乱大交777| 国产精品观看在线亚洲人成网| 国产最新精品视频| 亚洲电影在线看|