首頁  >  問答  >  主體

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('關聯模型名','中間模型名','外鍵名','中間模型關聯鍵名','當前模型主鍵名',['模型別名定義']);
就是後面的參數不知道一個寫那個大神們能幫忙指教嗎

葫芦娃平衡盘葫芦娃平衡盘2378 天前1856

全部回覆(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
  • 取消回覆