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的设计概念,强调类
另外,真的不想吐槽文档