join查询:
$info = Customer::find()->select(['customer.*','user.*'])
->innerjoin('user', 'user.id=customer.uid')
->where(['customer.cid'=>10006])->one();
如上代码,正确没问题,看文档也只介绍了怎么用,没有例子,然后一看查询结果,你炸了,只有主表数据,没有关联表user的数据!
然后你开始排查,打印sql,->createCommand()->getRawSql(),然后mysql上一运行,没错,得到了正确数据,然后你又炸了!
办法: 其实你需要再调用一个asAarray()办法,就能得到关联表数据,因为yii在没有asArray的时候是不显示关联表数据的。
使用joinWith()方法或者关联关系hasOne或者hasMany可以直接得到,推荐使用这两种方式吧,快捷,符合yii的设计概念,强调类
另外,真的不想吐槽文档
————————————————
版权声明:本文为优快云博主「weetch」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/u011088792/article/details/77334650
本文详细解析了在Yii框架中进行JOIN查询时遇到的问题及解决方法。通过具体案例展示了如何正确获取关联表数据,并提供了使用asArray()方法的技巧。同时推荐了更高效的joinWith()方法及关联关系配置。
2218

被折叠的 条评论
为什么被折叠?



