1. 程式人生 > ><記錄>TP5 關聯模型使用

<記錄>TP5 關聯模型使用

elong isp sele aso comm 商品 數據庫設計 left list

在數據庫設計中,常常會有如下這種關聯模型,分類表中一條分類對應多個商品表中的商品

技術分享圖片

如果要獲得分類表中每條分類 以及 對應的商品的信息,則需要先查詢分類表中的數據,然後根據結果遍歷查詢商品表,最後把數據拼接在一起

TP5中關聯模型可以解決這一問題

先創建分類表模型 /application/common/model/Category.php 以及商品表模型 /application/common/model/Goods.php

在分類表中創建關聯

namespace app\common\model;

class Category extends Base {

    public function
goods(){ return $this->hasMany(‘Goods‘,‘category_id‘,‘id‘); } }

接著就可以使用關聯模型查詢數據

    public function list(){
        return CategoryModel::with(‘goods‘)->where(true)->select();
    }

除了一對多 還可以創建 多對多 一對一

//一對一
hasOne(‘關聯模型‘,‘外鍵‘,‘主鍵‘);
//多對多
belongsToMany(‘關聯模型‘,‘中間表‘,‘外鍵‘,‘關聯鍵‘);

<記錄>TP5 關聯模型使用