程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> ThinkPHP中視圖模型詳解.,thinkphp視圖

ThinkPHP中視圖模型詳解.,thinkphp視圖

編輯:關於PHP編程

ThinkPHP中視圖模型詳解.,thinkphp視圖


  很多TP的新手對於模型中的視圖模型不甚了解,官方雖然有詳細手冊,但是對於初學者來說還是比較難以理解!

  先簡單說一下視圖模型所能實現的功能,基本就是主表與副表之間各個字段的關聯問題,實現多表關聯查詢,相對於使用原生SQL語句來說,著實是簡單不少.

  首先在數據表初始化的時候,用的不是傳統的M('User'),在視圖模型中使用的是D('UserView'),如下圖:

  

  需要主要的是幾個單詞的首字母大寫.

  之後在Lib/Model目錄中新建名為XXXViewModel.class.php(XXX為任意控制器名/首字母大寫).裡面的內容格式如下圖:

  

  推薦所有的數組後面都加上'_type'=>'LEFT'.因為當所關聯的表的數據為空時,系統會報錯.

  首先主表就是customer數組中填寫的則是需要查詢出來的字段,其中裡面的p_id和b_id則是他所關聯的表設置的別名,其實類似於原生SQL裡面的LeftJoin語句的感覺.

  

  上圖所示,'_table'寫的是你需要關聯的表名,值得注意的是表名需要寫全稱,包括它的前綴.

  '_as'則是你要給他取的別名,'name'則是你之後在進行CURD操作的時候所用的字段,

  '_on'執行關聯操作:主表.所關聯的ID=副表(使用的是別名).主鍵ID,當他們相等的時候,也就實現了主表某個字段與副表的某條數據進行關聯了,最後驚醒Select操作就是把關聯的內容展現出來了.

  當然這個一般用來處理過於繁雜的表數據關聯,比如說一個主表關聯十幾個副表,這個時候用到視圖模型你就會覺得省心了.

  這只是一個基本功能的簡單例子,基本就講解到這裡.希望可以幫助到一些TP的新手.


thinkphp中視圖模型與關聯模型有啥不同

看你喜歡和習慣咯
 

THINKPHP裡視圖模型怎實現COUNT查詢?

'cate'=>array('id','name'),
'Category'=>array('count(*)'=>'nums', '_on'=>'blog.cid=cate.id'),
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved