TP6——多对多关联查询

TP6的文档说的还是太模糊,例子也不典型,对小白来说太不友好了,纯靠试。这里记录下多对多关联查询怎么定义,以备以后查看使用,这里用的是实际项目的例子
中间表名:e_finance_warrant 模型对应为FinanceTypeModel


图片.png

产品表名:e_bank_finance 模型对应为BankFinanceModel


图片.png

产品类型表名:e_bank_warrant_type 模型对应为BankTypeModel


图片.png

每个产品可对应多个产品类型,每个产品类型可以对应多个产品,多对多关联

1.e_bank_finance的模型为BankFinanceModel

BankFinanceModel代码

//银行关联
    public function bankInfo(){
        return $this->hasOne('BankModel','id','bank_id');
    }

//产品类型多对多关联定义
    public function wType(){
        return $this->belongsToMany(BankTypeModel::class, FinanceTypeModel::class,'warrant_id','finance_id');
    }

FinanceTypeModel代码:只需要继承Pivot即可

<?php
declare (strict_types = 1);

namespace app\admin\model;

use think\Model\Pivot;

/**
 * @mixin \think\Model
 */
class FinanceTypeModel extends Pivot
{
    //
    protected $table = "e_finance_warrant";
}

方便查看,举个例子:查询代码

BankFinanceModel::where('id',49)->with(['bankInfo','wType'])->select()->toArray();
图片.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容