thinkphp通过模型查询mysql_thinkPHP视图模型详解,把mysql表关联简单化!
學(xué)過(guò)sql的人都知道有表左關(guān)聯(lián),右關(guān)聯(lián),但是sql語(yǔ)句要寫(xiě)很多,非常容易出錯(cuò),而ThinkPHP的視圖模型則簡(jiǎn)單化很多了。還發(fā)現(xiàn)個(gè)問(wèn)題,貌似ThinkPHP手冊(cè)寫(xiě)的很多東西都不是很完善,很多人看了都不懂。如果有什么不懂的,可以加群:252799167交流,或者給我留言,今天就寫(xiě)個(gè)ThinkPHP的視圖模型小例子,讓大家知道該怎么用。
mysql的表關(guān)聯(lián)其實(shí)就是將多個(gè)表的數(shù)據(jù)聯(lián)系到一起,然后臨時(shí)生成一張表,方便讀取數(shù)據(jù)。而在ThinkPHP中視圖表同真實(shí)的表一樣,視圖包含一系列帶有名稱(chēng)的列和行數(shù)據(jù)。但是,視圖并不在數(shù)據(jù)庫(kù)中以存儲(chǔ)的數(shù)據(jù)值集形式存在。行和列數(shù)據(jù)來(lái)自由定義視圖的查詢所引用的表,并且在引用視圖時(shí)動(dòng)態(tài)生成。
接下來(lái)開(kāi)始創(chuàng)建表gl_blog:
gl_category
gl_user
新建入口文件,生成項(xiàng)目文件,設(shè)置編碼為utf-8(可以根據(jù)自己的需要來(lái))
在Model文件夾里新建BlogViewModel.class.php
內(nèi)容:
'Blog'=>array('id','name','title');
Blog表中要顯示的字段,和數(shù)據(jù)表相對(duì)應(yīng)
'title'=>'category_name',
給Category表中的title定義別名為category_name,如果不想可以不定義
'_on'=>'Blog.category_id=Category.id'
'_on'將兩個(gè)表建立聯(lián)系,也就是Blog表中的category_id和Category中的id字段相對(duì)應(yīng),如果Category表中有多哥要顯示的字段,可以直接array('title'=>'category_name',在array中添加即可,
還有幾種用法,
array('title'=>'category_name' ? 指定表名
'_as'=>'myBlog' ? ? ? ?給當(dāng)前的數(shù)據(jù)表定義別名
'_type'=>'LEFT' ? ? ? ?左關(guān)聯(lián)還是右關(guān)聯(lián)
至于User表和Blog表建立的聯(lián)系,就不說(shuō)了,大家應(yīng)該都能看懂了。
寫(xiě)完了下來(lái)就是使用的了
在IndexAction.class.php寫(xiě)
初始化BlogView視圖模型的類(lèi),查詢id,name,title,category_name,username字段,條件id大于10,降序排列
是不是非常簡(jiǎn)單?呵呵。學(xué)了ThinkPHP有兩個(gè)月了,發(fā)現(xiàn)ThinkPHP非常的人性化,盡量去簡(jiǎn)化很多操作,不過(guò)可能有些會(huì)額外的增加開(kāi)銷(xiāo)。這個(gè)可以在精通ThinkPHP以后,根據(jù)自己項(xiàng)目條件不同,去適當(dāng)修改優(yōu)化ThinkPHP,推薦如果想學(xué)習(xí)ThinkPHP的朋友可以去研究研究ThinkSNS的例子,非常不錯(cuò)
總結(jié)
以上是生活随笔為你收集整理的thinkphp通过模型查询mysql_thinkPHP视图模型详解,把mysql表关联简单化!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: php json存mysql斜杠_MyS
- 下一篇: mybatis中mysql流式读取_My