最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Yii框架關聯(lián)查詢with用法分析

 更新時間:2014年12月02日 09:01:48   投稿:shichen2014  
這篇文章主要介紹了Yii框架關聯(lián)查詢with用法,以實例形式較為詳細的分析了yii支持的四種類型關系的具體用法,是使用yii框架進行關聯(lián)查詢時非常實用的技巧,需要的朋友可以參考下

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

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

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

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: 這個對應于數(shù)據(jù)庫中的 多對多 關系。 由于多數(shù) DBMS 不直接支持 多對多 關系,因此需要有一個關聯(lián)表將 多對多 關系分割為 一對多 關系。
 
菜鳥們看到這個真的能明白嗎?

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

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

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

適用范圍,查找博客的時候需要把博客的作者也查出來。
b_user中第二個參數(shù):子表的表名,第三個參數(shù),主表中用于存子表主鍵的字段(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中的第二個參數(shù):子表表名,第三個參數(shù),子表中用于存主表主鍵的字段(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中的第二個參數(shù):子表表名,第三個參數(shù),子表中用于存主表主鍵的字段(blog表中用于存user表主鍵的字段)。
 
MANY_TO_MANY:
這個東西啊,我還沒用過,貌似基本上也不會用到,待我測一下,再來續(xù)上。。。
 
至此,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': 數(shù)據(jù)行的limit選擇。 這個選項不能應用到BELONGS_TO。
'offset': 數(shù)據(jù)行的偏移量。 這個選項不能應用到BELONGS_TO。
'through': 獲取相關的數(shù)據(jù)時將用作橋的模型的關系的名稱??梢栽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框架程序設計有所幫助。

相關文章

  • laravel withCount 統(tǒng)計關聯(lián)數(shù)量的方法

    laravel withCount 統(tǒng)計關聯(lián)數(shù)量的方法

    今天小編就為大家分享一篇laravel withCount 統(tǒng)計關聯(lián)數(shù)量的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • Yii統(tǒng)計不同類型郵箱數(shù)量的方法

    Yii統(tǒng)計不同類型郵箱數(shù)量的方法

    這篇文章主要介紹了Yii統(tǒng)計不同類型郵箱數(shù)量的方法,涉及Yii數(shù)據(jù)庫查詢及字符串的遍歷、截取與判斷相關操作技巧,需要的朋友可以參考下
    2016-10-10
  • PHP中關于php.ini參數(shù)優(yōu)化詳解

    PHP中關于php.ini參數(shù)優(yōu)化詳解

    在本篇文章里小編給大家整理的是關于PHP引擎php.ini參數(shù)優(yōu)化的相關知識點,有興趣的朋友們可以學習下。
    2020-02-02
  • smarty中常用方法實例總結

    smarty中常用方法實例總結

    這篇文章主要介紹了smarty中常用方法,較為詳細的分析了smarty模板中較為常用的方法、屬性及環(huán)境變量等使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • 利用PHP獲取漢字首字母并且分組排序詳解

    利用PHP獲取漢字首字母并且分組排序詳解

    這篇文章主要給大家介紹了關于如何利用PHP獲取漢字首字母并且分組排序的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用php具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-10-10
  • php ctype函數(shù)中文翻譯和示例

    php ctype函數(shù)中文翻譯和示例

    這篇文章主要介紹了php ctype函數(shù)中文翻譯和示例,相關函數(shù)示例列出了多個,需要的朋友可以參考下
    2014-03-03
  • Laravel路由研究之domain解決多域名問題的方法示例

    Laravel路由研究之domain解決多域名問題的方法示例

    這篇文章主要介紹了Laravel 路由研究之domain解決多域名問題的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • 強制PHP命令行腳本單進程運行的方法

    強制PHP命令行腳本單進程運行的方法

    本文介紹了一個強制PHP在單進程中執(zhí)行的函數(shù),多用在php命令行中和一些特殊需求的地方,需要的朋友可以參考下
    2014-04-04
  • 微信公眾號模板消息群發(fā)php代碼示例

    微信公眾號模板消息群發(fā)php代碼示例

    這篇文章主要為大家詳細介紹了微信公眾號模板消息群發(fā)php代碼示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Yii 框架使用數(shù)據(jù)庫(databases)的方法示例

    Yii 框架使用數(shù)據(jù)庫(databases)的方法示例

    這篇文章主要介紹了Yii 框架使用數(shù)據(jù)庫(databases)的方法,結合實例形式分析了Yii 框架使用數(shù)據(jù)庫(databases)的相關配置、創(chuàng)建活動、動作實現(xiàn)技巧,需要的朋友可以參考下
    2020-05-05

最新評論

通化县| 太谷县| 香格里拉县| 岳普湖县| 辽中县| 山东| 黄石市| 获嘉县| 泾阳县| 原平市| 大洼县| 安福县| 大姚县| 延寿县| 蚌埠市| 韶关市| 利川市| 宝清县| 台安县| 扎兰屯市| 铅山县| 纳雍县| 错那县| 炎陵县| 商城县| 五原县| 高台县| 东乡| 舟曲县| 同心县| 都江堰市| 海口市| 江都市| 平安县| 江津市| 广饶县| 华蓥市| 长白| 阿坝县| 阿图什市| 崇义县|