关联模型

来源:8-4 隐藏模型字段

哭泣的鱼儿

2017-10-24

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回答

7七月

2017-10-25

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

0
5
7七月
回复
哭泣的鱼儿
你试一下 5.07c
2017-10-26
共5条回复

哭泣的鱼儿

提问者

2017-10-24

就是只查出了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
0

7七月

2017-10-24

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

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
共1条回复

微信小程序电商实战 从前端到后端的全流程精讲

全栈工程师/前后端都讲/架构思想/ RESTFul API、MySQL表设计

4805 学习 · 4382 问题

查看课程