thinkphp模型远程一对多解析

2021-07-06 11:22 PHP知识点随笔

手册原版:

hasManyThrough('关联模型', '中间模型', '外键', '中间表关联键','当前模型主键','中间模型主键');

我的实际使用场景如下:

总共三张表,楼盘表(lp),楼盘标签关联表(lp_label),标签表(label)

楼盘表(lp)字段如下:


id

title



关联表(lp_label)字段如下:

id

lp_id

label_id



标签表(label)字段如下:

id

title



最终目的:

查询楼盘列表时,把每个楼盘绑定的标签也同时查询出来,实现代码如下:

控制器查询代码:

$lp_model = new lp();  //这里实列化对应的模型即可

$list = $lp_model->select()->each(function($item, $key) {


         $item['label'] = $item->label

});

楼盘模型代码:

public function label() {

    return $this->hasManyThrough('Label', 'LpLabel', 'lp_id', 'id', 'id', 'label_id');

}

模型代码中的参数解析如下:

Label:标签模型名

Lplabel:楼盘和标签绑定的模型名


lp_id:lp_label表中的lp_id,关联楼盘表(lp)的id字段

id:lable表的主键id,

id:lp表的主键id

label_id:中间模型lp_label的关键键label_id


本文章转载自公众号:cherish_humor

首页 - PHP 相关的更多文章: