请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关联模型

select  oi.order_id,og.rec_id 

FROM ecs_order_info as oi 

left join ecs_order_goods as og on og.order_id = oi.order_id 

limit 5,老师我直接写的一个sql可以查出两个字段的id,但是我用belongsTo一对一关联的时候查出order_info里面的字段,另一张表的数据没反映 ,看了好多次视频和管方文档也没找到原因,求解!!!在线等,谢谢

正在回答 回答被采纳积分+3

3回答

7七月 2017-10-25 03:50:31

我有点没明白,order_info和good之间是1对1的关系?你自己代码里都写的是goods,为什么是1对1?还有就是贴代码麻烦能不能格式化一下,看这段代码用了十几分钟。

0 回复 有任何疑惑可以回复我~
  • 提问者 哭泣的鱼儿 #1
    不好意思哈老师,我发出去才看到,之后我又格式化了发了一次,不过发错地方了,发在了回答问题这个地方,我的错。我确定两个表是一对一,我看了下日志里面记录的sql也是正常的,只是最后一条sql的RunTime是0.000000s,是不是说这条没有执行哦?
    回复 有任何疑惑可以回复我~ 2017-10-25 11:04:08
  • 7七月 回复 提问者 哭泣的鱼儿 #2
    感觉这个是bug还是怎么回事儿。你的TP版本是多少?
    回复 有任何疑惑可以回复我~ 2017-10-25 23:38:50
  • 提问者 哭泣的鱼儿 回复 7七月 #3
    我是在官网上下载的5.0.11完整版
    回复 有任何疑惑可以回复我~ 2017-10-26 10:43:02
提问者 哭泣的鱼儿 2017-10-24 22:09:22

就是只查出了order_info的数据,order_goods里面的数据没有查出来,

class OrderInfo extends Model {
   protected $visible = ['order_id'];
   public function oGoods(){
       return $this->belongsTo('OrderGoods','order_id','order_id');
   }
   public static function getOrder(){
       $order = self::with('oGoods')->find();
       return $order;
   }
}

use think\Model;
class OrderGoods extends Model{
   protected $visible = ['rec_id'];
}

$order结果是Array([order_id] => 1)

select  oi.order_id,og.rec_id 

FROM ecs_order_info as oi 

left join ecs_order_goods as og on og.order_id = oi.order_id 

limit 1 这个是Array([order_id]=>1,[rec_id]=>5)

看了下日志sql没毛病啊

[ sql ] [ SQL ] SHOW COLUMNS FROM `ecs_order_info` [ RunTime:0.043002s ]
[ sql ] [ SQL ] SELECT * FROM `ecs_order_info` LIMIT 1 [ RunTime:0.001000s ]
[ sql ] [ SQL ] SHOW COLUMNS FROM `ecs_order_goods` [ RunTime:0.041002s ]
[ sql ] [ SQL ] SELECT * FROM `ecs_order_goods` WHERE  `order_id` = 155 [ RunTime:0.000000s ]

0 回复 有任何疑惑可以回复我~
7七月 2017-10-24 19:10:47

我没太明白什么是另一张表的数据没反映。可否详细描述一下你的问题呢?你的模型是怎么定义的,数据表又是如何定义的。这样才能帮你分析问题。

0 回复 有任何疑惑可以回复我~
  • 提问者 哭泣的鱼儿 #1
    就是只查出了order_info的数据,order_goods里面的数据没有查出来,
    class OrderInfo extends Model {
       protected $visible = ['order_id'];
       public function oGoods(){
           return $this->belongsTo('OrderGoods','order_id','order_id');
       }
       public static function getOrder(){
           $order = self::with('oGoods')->find();
           return $order;
       }
    }
    use think\Model;
    class OrderGoods extends Model{
       protected $visible = ['rec_id'];
    }
    $order结果是Array([order_id] => 1)
    select  oi.order_id,og.rec_id 
    FROM ecs_order_info as oi 
    left join ecs_order_goods as og on og.order_id = oi.order_id 
    limit 1 这个是Array([order_id]=>1,[rec_id]=>5)
    看了下日志sql没毛病啊
    [ sql ] [ SQL ] SHOW COLUMNS FROM `ecs_order_info` [ RunTime:0.043002s ]
    [ sql ] [ SQL ] SELECT * FROM `ecs_order_info` LIMIT 1 [ RunTime:0.001000s ]
    [ sql ] [ SQL ] SHOW COLUMNS FROM `ecs_order_goods` [ RunTime:0.041002s ]
    [ sql ] [ SQL ] SELECT * FROM `ecs_order_goods` WHERE  `order_id` = 155 [ RunTime:0.000000s ]
    回复 有任何疑惑可以回复我~ 2017-10-24 22:15:42
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号