在ThinkPHP中,關(guān)聯(lián)模型更類似一種mysql中的外鍵約束,但是外鍵約束更加安全,缺點(diǎn)卻是在寫sql語句的時候不方便,ThinkPHP很好得解決了這個問題.但是很多人不動關(guān)聯(lián)模型的意思.現(xiàn)在就寫個例子.讓大家理解ThinkPHP關(guān)聯(lián)模型的意思.
在寶坻等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計 網(wǎng)站設(shè)計制作按需規(guī)劃網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,全網(wǎng)營銷推廣,成都外貿(mào)網(wǎng)站建設(shè),寶坻網(wǎng)站建設(shè)費(fèi)用合理。
環(huán)境描述:公司有一個員工表think_user,一個檔案表,think_archives,一個部門表,think_department,和一個銀行卡表.think_cars.
一個員工只有一個檔案表,所以關(guān)系就是HSA_ONE,
一個員工只屬于一個部門,但是部門里有多個員工,所以是BELONGS_TO關(guān)系
一個員工有多個銀行卡,但是一個銀行卡只能屬于一個員工.所以關(guān)系就是HAS_MANY.
先創(chuàng)建需要的表和測試數(shù)據(jù)
think_user表.
CREATE TABLE `think_user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(50) NOT NULL, `password` varchar(50) NOT NULL, `did` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |think_department
CREATE TABLE `think_department` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |think_archives
CREATE TABLE `think_archives` ( `id` int(7) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL, `addr` varchar(200) DEFAULT NULL, `email` varchar(30) DEFAULT NULL, `tel` int(13) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |think_cars
CREATE TABLE `think_cars` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, `type` varchar(50) DEFAULT NULL, `uid` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8插入數(shù)據(jù)到部門表think_department
insert into think_cars values (null,'gongxiang','工商卡','1'), (null,'jianshe','建行卡','2'), (null,'jiaohang','交通銀行卡',3);think_user數(shù)據(jù)
insert into think_archives values (null,1,'北京','123@163.com','13888888'), (null,2,'上海','111@qq.com','1377777'), (null,3,'重慶','222@qq.com','1344444'), (null,4,'天津','333@qq.com','1111111'), (null,5,'山西','444@qq.com','1322222'), (null,6,'河北','555@qq.com','1333333'), (null,7,'廣州','6666@qq.com','13232323'), (null,8,'廣東','7777@qq.com','121121212'), (null,9,'深證','888@qq.com','1821212');think_cars數(shù)據(jù)
insert into think_cars values (null,'gongxiang','工商卡','1'), (null,'jianshe','建行卡','2'), (null,'jiaohang','交通銀行卡',3); Query OK, 3 rows affected (0.01 sec)think_archives
insert into think_archives values (null,1,'北京','123@163.com','13888888'), (null,2,'上海','111@qq.com','1377777'), (null,3,'重慶','222@qq.com','1344444'), (null,4,'天津','333@qq.com','1111111'), (null,5,'山西','444@qq.com','1322222'), (null,6,'河北','555@qq.com','1333333'), (null,7,'廣州','6666@qq.com','13232323'), (null,8,'廣東','7777@qq.com','121121212'), (null,9,'深證','888@qq.com','1821212');ok,數(shù)據(jù)和表創(chuàng)建完了,下面講如何用ThinkPHP的關(guān)聯(lián)模型去獲取表中數(shù)據(jù)
現(xiàn)在Model文件夾里創(chuàng)建UserModel.class.php
<?php class UserModel extend RelationModel{}先做部門和員工之間的關(guān)系.員工表的did和部門表的id對應(yīng)
mapping_type是要關(guān)聯(lián)的模型類名
mapping_name 關(guān)聯(lián)表的模型名稱
foreign_key 關(guān)聯(lián)表的外鍵定義
mapping_fields 關(guān)聯(lián)表要查詢的字段,默認(rèn)為全部字段
condition 關(guān)聯(lián)條件
parent_key 自引用關(guān)聯(lián)字段
as_fields 字段別名定義
2.員工表和檔案表之間的關(guān)系
protected $_link=array( 'Archives'=>array( 'mapping_type'=>HAS_ONE, 'class_name'=>'Archives', 'foreign_key'=>'id', 'condition'=>'uid' ), );3.員工表與銀行卡表之間關(guān)系的定義
protected $_link=array( 'Cars'=>array( 'mapping_type'=>HAS_MANY, 'class_name'=>'Cars', 'foreign_key'=>'id', 'condition'=>'uid', ), );使用方法,在IndexAction.class.php中
class IndexAction extends Action { public function index(){ $user=D('User'); $row=$user->relation(true)->select(); dump($row); } }另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當(dāng)前標(biāo)題:ThinkPHP關(guān)聯(lián)模型詳解-創(chuàng)新互聯(lián)
網(wǎng)頁網(wǎng)址:http://aaarwkj.com/article42/jcpec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計、電子商務(wù)、網(wǎng)站設(shè)計、自適應(yīng)網(wǎng)站、響應(yīng)式網(wǎng)站、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容