请稍等 ...
×

采纳答案成功!

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

关联模型查询结果最后一个img=null

记录的日志为:
[ 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 ]

https://img1.sycdn.imooc.com/szimg//591ce4120001165106090609.jpg

https://img1.sycdn.imooc.com/szimg//591ce4120001f4d713660736.jpg

https://img1.sycdn.imooc.com/szimg//591ce4130001085013660736.jpg

https://img1.sycdn.imooc.com/szimg//591ce47900014ea213660736.jpg

https://img1.sycdn.imooc.com/szimg//591ce4790001a5f713660736.jpg

数据库是有对应的4张 图片的,为何查询结果最后一个img为null,断点调试BaseModel的prefixImgUrl($value,$data)方法只执行了3次,是什么原因




最后问题已经解决,原因是

V5.0.5+版本开始,默认使用IN查询方式,如果需要改为JOIN查询方式

 // 设置预载入查询方式为JOIN方式
return $this->hasOne('Profile')->setEagerlyType(0);


解决办法如下:

https://img1.sycdn.imooc.com/szimg//591da160000138fa13660736.jpg

https://img1.sycdn.imooc.com/szimg//591da16100010ae713660736.jpg

https://img1.sycdn.imooc.com/szimg//591da161000155e513660630.jpg


正在回答

5回答

这个原因好奇怪。。。你可以看到课程里是给大家一遍遍演示的,包括断点走了4次。可以先对比下源代码吗?肯定还是哪里有问题,但这个不是一个典型的错误,我从来没有遇到过循环只走不完的情况。

0 回复 有任何疑惑可以回复我~
  • 提问者 晓峰123 #1
    最后问题已经解决,原因是
    
    V5.0.5+版本开始,默认使用IN查询方式,如果需要改为JOIN查询方式
    
     // 设置预载入查询方式为JOIN方式
    return $this->hasOne('Profile')->setEagerlyType(0);
    
    希望用5.05+版本的童鞋注意,避免入坑
    回复 有任何疑惑可以回复我~ 2017-05-18 21:30:24
  • 提问者 晓峰123 #2
    非常感谢!
    回复 有任何疑惑可以回复我~ 2017-05-18 21:38:39
慕粉2027112989 2017-07-01 10:21:08

刚好遇到这个问题,多谢。。。

1 回复 有任何疑惑可以回复我~
7七月 2017-08-27 01:24:34

你们都不用课程的5.07么。。。这个建议学习阶段用5.07,后面自己再去升级啊。已经遇到很多因为版本的问题了,实际上新版本并没有太多的改进。不要一味追心啊。

0 回复 有任何疑惑可以回复我~
小新在编程 2017-08-26 20:26:58

我的版本是5.0.10, 为什么没有遇到楼主中的问题,默认也是IN查询

0 回复 有任何疑惑可以回复我~
walker02 2017-08-26 15:59:46

楼主真的很厉害,我也遇到了这个问题,感谢分享

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信