关联模型查询结果最后一个img=null
来源:8-3 模型关联----嵌套关联查询
晓峰123
2017-05-18
记录的日志为:
[ info ] [ RUN ] app\api\controller\v1\Banner->getBanner[ E:\www\zerg\application\api\controller\v1\Banner.php ]
[ info ] [ DB ] INIT mysql
[ info ] [ LOG ] INIT File
[ sql ] [ DB ] CONNECT:[ UseTime:0.001000s ] mysql:dbname=zerg;host=127.0.0.1;port=3306;charset=utf8
[ sql ] [ SQL ] SHOW COLUMNS FROM `banner` [ RunTime:0.001000s ]
[ sql ] [ SQL ] SELECT * FROM `banner` WHERE `id` = 1 LIMIT 1 [ RunTime:0.001000s ]
[ sql ] [ SQL ] SHOW COLUMNS FROM `banner_item` [ RunTime:0.001000s ]
[ sql ] [ SQL ] SELECT * FROM `banner_item` WHERE `banner_id` = 1 [ RunTime:0.000000s ]
[ sql ] [ SQL ] SELECT * FROM `banner_item` WHERE `banner_id` = 1 [ RunTime:0.001000s ]
[ sql ] [ SQL ] SHOW COLUMNS FROM `image` [ RunTime:0.001000s ]
[ sql ] [ SQL ] SELECT * FROM `image` WHERE `id` IN (65,2,3,1) [ RunTime:0.000000s ]
数据库是有对应的4张 图片的,为何查询结果最后一个img为null,断点调试BaseModel的prefixImgUrl($value,$data)方法只执行了3次,是什么原因
最后问题已经解决,原因是
V5.0.5+版本开始,默认使用IN查询方式,如果需要改为JOIN查询方式
// 设置预载入查询方式为JOIN方式
return $this->hasOne('Profile')->setEagerlyType(0);
解决办法如下:
5回答
-
这个原因好奇怪。。。你可以看到课程里是给大家一遍遍演示的,包括断点走了4次。可以先对比下源代码吗?肯定还是哪里有问题,但这个不是一个典型的错误,我从来没有遇到过循环只走不完的情况。
022017-05-18 -
慕粉2027112989
2017-07-01
刚好遇到这个问题,多谢。。。
10 -
7七月
2017-08-27
你们都不用课程的5.07么。。。这个建议学习阶段用5.07,后面自己再去升级啊。已经遇到很多因为版本的问题了,实际上新版本并没有太多的改进。不要一味追心啊。
00 -
小新在编程
2017-08-26
我的版本是5.0.10, 为什么没有遇到楼主中的问题,默认也是IN查询
00 -
walker02
2017-08-26
楼主真的很厉害,我也遇到了这个问题,感谢分享
00
相似问题