摘要:的關(guān)聯(lián)應(yīng)用參考的多對(duì)多關(guān)聯(lián)文檔,給大家簡(jiǎn)單介紹一下我在項(xiàng)目應(yīng)用中的實(shí)現(xiàn)。數(shù)據(jù)表根據(jù)繪制的圖我們可以確定,訂單票據(jù)的數(shù)據(jù)表實(shí)現(xiàn)需要三張表,訂單表是數(shù)據(jù)庫(kù)關(guān)鍵字因此不能作為表名,票據(jù)表,中間表。
TP5的關(guān)聯(lián)應(yīng)用
參考TP5的多對(duì)多關(guān)聯(lián)文檔,給大家簡(jiǎn)單介紹一下我在項(xiàng)目應(yīng)用中的實(shí)現(xiàn)。
ER圖講解多對(duì)多關(guān)系
如圖繪出“訂單——票據(jù)”聯(lián)系,記為“O-T”聯(lián)系;圖中Order實(shí)體和Ticket各畫(huà)了5個(gè)屬性作為展示,業(yè)務(wù)需要不同屬性也一定不一致,這點(diǎn)大家可根據(jù)業(yè)務(wù)場(chǎng)景自行設(shè)計(jì);其中Ticket實(shí)體大家可聯(lián)系成商品,就好比我們購(gòu)物下單時(shí),一筆訂單可包含各種各樣的商品,這里我的訂單中所有的商品都是票據(jù),一筆訂單包含多張票據(jù)。
數(shù)據(jù)表
根據(jù)繪制的ER圖我們可以確定,訂單-票據(jù)的數(shù)據(jù)表實(shí)現(xiàn)需要三張表,訂單表Orders(Order是數(shù)據(jù)庫(kù)關(guān)鍵字因此不能作為表名),票據(jù)表Ticket,中間表Oticket。在我的項(xiàng)目中訂單表Orders和票據(jù)表Ticket屬性較為復(fù)雜,在此不一一列舉說(shuō)明,關(guān)系表Oticket中用我用oid記錄訂單id,tid記錄票據(jù)id。
模型定義
對(duì)照文檔中的belongsToMany方法
來(lái)給Orders模型和Ticket模型定義關(guān)聯(lián)
中間表名都是Oticket,大家需要注意一下外鍵和當(dāng)前模型關(guān)聯(lián)鍵名的位置不要寫(xiě)錯(cuò)
模型要和表名一致,建議大家使用自動(dòng)生成目錄的方法,在build.php中定義好所有的控制器、模型、驗(yàn)證器等,注意大小寫(xiě),在此先不詳細(xì)介紹了,可參見(jiàn)鏈接描述。
控制器調(diào)用查詢
在控制器中寫(xiě)一個(gè)接口,查詢出符合查詢條件的結(jié)果集,定義為$res,我的需求是列表查詢,訂單列表中就需要顯示每筆訂單下票據(jù)的詳細(xì)信息,因此需要將每筆訂單中的每張票據(jù)信息封裝在ticketInfo中。
調(diào)用的列表接口結(jié)果集返回實(shí)例參見(jiàn)接口文檔 鏈接描述
{ "id": 22, "orderNumber": "2018011857511014", "cid": 1, "state": 0, "message": " ", "fakeAmount": 20000, "realAmount": 19800, "price": 200, "discount": 0, "profit": 0, "isShare": 0, "payTime": 1516248345, "deadline": 1516248945, "sendTime": 0, "sentTime": 0, "finishTime": 0, "cancelTime": 0, "closeTime": 0, "create_time": 1516248345, "isDelete": 0, "deleteTime": 0, "company": "杭州柯基有限公司", "ticketSum": 2, "ticketInfo": [ { "tid": 4, "aid": 8, "acceptBank": "三農(nóng)", "ticketState": 0, "ticketNumber": "12423412", "image": "uploads/20180115/a301db72444edd285650bf655d26ac70.jpg", "fakeAmount": 234234, "price": 123, "discounts": 0, "adjustDay": 0, "ticketTime": 1514876755, "endTime": 1517388228, "restTime": 11 }, { "tid": 5, "aid": 8, "acceptBank": "三農(nóng)", "ticketState": 0, "ticketNumber": "324534234", "image": "uploads/20180115/b6894f7048b361dc905b414b5fe2d705.jpg", "fakeAmount": 23412431, "price": 2314, "discounts": 0, "adjustDay": 0, "ticketTime": 1514882243, "endTime": 1517388228, "restTime": 11 } ] }
以上就是我在項(xiàng)目實(shí)踐中對(duì)多對(duì)多關(guān)聯(lián)的一些應(yīng)用,主要還是對(duì)照開(kāi)發(fā)文檔實(shí)踐鏈接描述,只是文檔中只介紹了單個(gè)查詢的方法,我展示的是在應(yīng)用中遇到的我使用結(jié)果集關(guān)聯(lián)查詢的方法,若是單筆訂單查詢,就不需要用到循環(huán)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/28510.html
摘要:配置主域名二級(jí)子域名列表項(xiàng)目其中加入了版本控制,使用的是路由傳入方式在路由文件中配置,如下版本路由省略方法名時(shí)有方法名時(shí)同時(shí)控制器里加入版本號(hào)這個(gè)例子最終的顯示為項(xiàng)目最終目錄結(jié)構(gòu)為配置主域名配置此處可作反向代理二級(jí)接口子域名配置配置解決 配置: 主域名 www.demo.xyz 二級(jí)子域名 api.demo.xyz 列表項(xiàng)目其中api.demo.xyz加入...
摘要:配置主域名二級(jí)子域名列表項(xiàng)目其中加入了版本控制,使用的是路由傳入方式在路由文件中配置,如下版本路由省略方法名時(shí)有方法名時(shí)同時(shí)控制器里加入版本號(hào)這個(gè)例子最終的顯示為項(xiàng)目最終目錄結(jié)構(gòu)為配置主域名配置此處可作反向代理二級(jí)接口子域名配置配置解決 配置: 主域名 www.demo.xyz 二級(jí)子域名 api.demo.xyz 列表項(xiàng)目其中api.demo.xyz加入...
摘要:好了,開(kāi)始今天的主題內(nèi)容的使用下載使用中國(guó)鏡像任何環(huán)境都可用然后再來(lái)下載,這樣就不會(huì)有出現(xiàn)下載不了的問(wèn)題,因?yàn)槠渌闹袊?guó)鏡像總有這那個(gè)小問(wèn)題阻礙使用下載下載如果在下需要在下載注意記得在下載的使用,已經(jīng)使用了切換到了項(xiàng)目目錄, 好了,開(kāi)始今天的主題內(nèi)容:tp5的workerman 1.使用composer下載tp5????a) 使用中國(guó)鏡像(任何環(huán)境都可用) composer confi...
閱讀 3364·2021-11-11 16:54
閱讀 3523·2021-10-11 10:58
閱讀 1262·2021-08-30 09:41
閱讀 1808·2019-08-30 15:54
閱讀 2032·2019-08-30 14:00
閱讀 2706·2019-08-29 17:13
閱讀 1672·2019-08-29 15:19
閱讀 613·2019-08-29 15:14