首页  >  问答  >  正文

TP5 远程一对多关联 参数怎么填

先说思路 根据order_goods里的goodsiD找到goods表里的shop_id 然后根据shop_id在shop表里找name 其中order_goods表与shop表没有关联
我模仿TP5里的写
public function shop()
   {
       return $this->hasManyThrough('Shop','Goods','goods_id','shop_id','id')->setEagerlyType(0);
   }
hasManyThrough('关联模型名','中间模型名','外键名','中间模型关联键名','当前模型主键名',['模型别名定义']);
就是后面的参数不知道一个写那个 大神们能帮忙指教一下吗

葫芦娃平衡盘葫芦娃平衡盘2379 天前1861

全部回复(5)我来回复

  • 天蓬老师

    天蓬老师2018-05-08 15:44:48

    请打开trace,将生成的SQL语句,贴出来

    回复
    0
  • 葫芦娃平衡盘

    不好意思 老师 我不知道怎么打开trace...

    葫芦娃平衡盘 · 2018-05-08 16:27:47
    天蓬老师

    请把官方手册通读一遍: https://www.kancloud.cn/manual/thinkphp5_1/354096

    天蓬老师 · 2018-05-08 16:56:40
    葫芦娃平衡盘

    老师找到了 [ SQL ] 显示来自 `ant_auth_group_access` 的列 [运行时间:0.002001s ] [ SQL ] SELECT `aga`.`uid`,`aga`.`group_id`,`ag`.`id`,`ag`.`pid`,`ag`.`name`,`ag`.`规则` FROM `ant_auth_group_access` `aga` 左连接 `ant_auth_group` `ag` ON `aga`.`group_id`=`ag`.`id` 其中( aga.uid='1' 和 ag.status='normal' ) [运行时间:0.002000s] [ SQL ] 显示来自 `ant_auth_rule` 的列 [运行时间:0.003000s ] [ SQL ] SELECT `id`,`pid`,`condition`,`icon`,`name`,`title`,`ismenu` FROM `ant_auth_rule` WHERE `status` = '正常' [ RunTime:0.003000s ] [ SQL ] 显示“ant_order_goods”中的列 [运行时间:0.003000s] [ SQL ] SELECT * FROM `ant_order_goods` WHERE `id` = 13 LIMIT 1 [ 运行时间:0.001000s ] [ SQL ] 显示来自 `ant_goods` 的列 [运行时间:0.003000s ] [ SQL ] 显示来自 `ant_shop` 的列 [运行时间:0.003000s ] 他的意思是没有找到ant_goods和ant_shop吗

    葫芦娃平衡盘 · 2018-05-08 17:23:10
    葫芦娃平衡盘

    我有一点不是很明白 为什么只要3个参数就可以 因为 我是根据主表的字段(第一个)对应中间表的一个字段(第二个),然后得到中间白对应的某条数据 再拿其中另外一个字段(第三个)来对应最后一个表的数据id(第四个) 所以我想应该要四个字段才能 这就导致我不清楚这三个参数填那个

    葫芦娃平衡盘 · 2018-05-08 17:30:05
  • 取消回复