日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

think php 关联模型,ThinkPHP 关联模型使用图解

發布時間:2025/3/21 php 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 think php 关联模型,ThinkPHP 关联模型使用图解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通常我們所說的關聯關系包括下面三種:

☆ 一對一關聯:ONE_TO_ONE,包括HAS_ONE和BELONGS_TO

☆ 一對多關聯:ONE_TO_MANY,包括HAS_MANY和BELONGS_TO

☆ 多對多關聯:MANY_TO_MANY

關聯關系必然有一個參照表,例如:

有一個用戶注冊表xp_user和一個用戶信息表xp_info

xp_user有用戶的賬號、密碼

xp_info記錄用戶的基本信息 有標題、信息

一、我們首先來說說HAS_ONE關聯

首先要建立一個UserModel模型

UserModel模型:

<?phpclassUserModelextendsRelationModel {//這地方要繼承RelationModelprotected$_link=array(//所有的關聯定義都統一記錄在模型類的$_link里面'Info'=>array(//關聯的表名'mapping_type'=>HAS_ONE,//關聯類型'class_mame'=>'Info',//需要關聯的模型類名'mapping_name'=>'Info',//關聯的映射名稱,用于獲取數據用'foreign_key'=>'uid',//關聯的外鍵名稱//'mapping_fields'=>'uid,title,info', //關聯要查詢的字段'as_fields'=>'uid,title,info:message',//直接把關聯的字段值映射成數據對象中的某個字段),);}?>

UserAction控制器:

<?phpclassUserActionextendsAction {publicfunctionindex(){$user=D('User');$list=$user->relation(true)->find();//由于性能問題,新版本取消了自動關聯查詢機制,而統一使用relation方法進行關聯操作dump($list);}}?>

輸入結果如下:

二、一對多關聯HAS_MANY

user表仍是一條數據

info表增加一條數據

UserModel模型:

<?phpclassUserModelextendsRelationModel {//這地方要繼承RelationModelprotected$_link=array(//所有的關聯定義都統一記錄在模型類的$_link里面'Info'=>array(//關聯的表名'mapping_type'=>HAS_MANY,//關聯類型 一對多關聯'class_mame'=>'Info',//需要關聯的模型類名'mapping_name'=>'Info',//關聯的映射名稱,用于獲取數據用'foreign_key'=>'uid',//關聯的外鍵名稱//'mapping_fields'=>'uid,title,info', //關聯要查詢的字段'as_fields'=>'uid,title,info:message',//直接把關聯的字段值映射成數據對象中的某個字段//一對多關聯這地方增加了幾個參數//mapping_limit 關聯要返回的記錄條數//mapping_order 關聯查詢的順序),);}?>

UserAction控制器:

<?phpclassUserActionextendsAction {publicfunctionindex(){$user=D('User');$list=$user->relation(true)->select();dump($list);}}?>

輸出結果:

一對一和一對多 基本一樣、只要會一對一 一對多很容易

三、關聯操作 CURD

1.以一對多模型為例,向數據庫插入數據

UserAction.class.php

'title111111','info'=>'info11111111'),//這里的info是字段array('title'=>'title222222222','info'=>'info222222222'),

);$user->relation(true)->add($data);

}

}?>

運行結果:

2.修改這條數據

UserAction.class.php

<?phpclassUserActionextendsAction {publicfunctionindex(){$user=D('User');$data['username']='demo';$data['userpwd']='mima';$data['Info']=array(array('id'=>'5','title'=>'demo111111','info'=>'demo111111'),//這地方跟add不同 需要加修改的IDarray('id'=>'6','title'=>'demo2222222','info'=>'demo2222222'),);$user->relation(true)->where('id=16')->save($data);}}?>

運行結果:

3.刪除這條數據

<?phpclassUserActionextendsAction {publicfunctionindex(){$user=D('User');$user->relation(true)->delete(16);}}?>

運行結果:

好了,關聯操作到此結束

總結

以上是生活随笔為你收集整理的think php 关联模型,ThinkPHP 关联模型使用图解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。